Java Mybatis 传参方式
一、单个参数:
- public List<XXBean> getXXBeanList(String xxCode);
- <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">
- select t.* from tableName t where t.id= #{id}
- </select>
- 其中方法名和ID一致,#{}中的参数名与方法中的参数名一直, 我这里采用的是XXXBean是采用的短名字,
- select 后的字段列表要和bean中的属性名一致, 如果不一致的可以用 as 来补充。
二、多参数:
- public List<XXXBean> getXXXBeanList(String xxId, String xxCode);
- <select id="getXXXBeanList" resultType="XXBean">
- select t.* from tableName where id = #{0} and name = #{1}
- </select>
- 由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始
三、Map封装多参数:
- public List<XXXBean> getXXXBeanList(HashMap map);
- <select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">
- select 字段... from XXX where id=#{xxId} code = #{xxCode}
- </select>
- 其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。
四、List封装in:
- public List<XXXBean> getXXXBeanList(List<String> list);
- <select id="getXXXBeanList" resultType="XXBean">
- select 字段... from XXX where id in
- <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
- #{item}
- </foreach>
- </select>
- foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4')
五、多参数传递之注解方式示:
- 例子:
- public AddrInfo getAddrInfo(@Param("corpId")int corpId, @Param("addrId")int addrId);
- xml配置这样写:
- <select id="getAddrInfo" resultMap="com.xxx.xxx.AddrInfo">
- SELECT * FROM addr__info
- where addr_id=#{addrId} and corp_id=#{corpId}
- </select>
- 以前在<select>语句中要带parameterType的,现在可以不要这样写。
六、selectList()只能传递一个参数,但实际所需参数既要包含String类型,又要包含List类型时的处理方法:
将参数放入Map,再取出Map中的List遍历。如下:
- List<String> list_3 = new ArrayList<String>();
- Map<String, Object> map2 = new HashMap<String, Object>();
- list.add("1");
- list.add("2");
- map.put("list", list); //网址id
- map.put("siteTag", "0");//网址类型
- public List<SysWeb> getSysInfo(Map<String, Object> map2) {
- return getSqlSession().selectList("sysweb.getSysInfo", map2);
- }
- <select id="getSysInfo" parameterType="java.util.Map" resultType="SysWeb">
- select t.sysSiteId, t.siteName, t1.mzNum as siteTagNum, t1.mzName as siteTag, t.url, t.iconPath
- from TD_WEB_SYSSITE t
- left join TD_MZ_MZDY t1 on t1.mzNum = t.siteTag and t1.mzType = 10
- WHERE t.siteTag = #{siteTag }
- and t.sysSiteId not in
- <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
- #{item}
- </foreach>
- </select>
Java Mybatis 传参方式的更多相关文章
- java 线程传参 方式
第一类:主动向线程传参 public class ThreadTest extends Thread { public ThreadTest() { } /** * 第一种通过构造方法来传递参数 ...
- Mybatis传参方式
Mybatis传多个参数(三种解决方案) 据我目前接触到的传多个参数的方案有三种. 第一种方案 DAO层的函数方法 ? 1 Public User selectUser(String name,St ...
- java 方法传参方式: 按值调用
程序设计语言中将参数传递给方法的几种方式: 按名调用(call by name): Algol 语言采用此方式, 已成为历史; 按值调用(call by value): 方法接收到的是调用者提供的 变 ...
- 浅谈对java中传参问题的理解
之前用的c/c++比较多,在c/c++中对于传参类型,无外乎就是传值.传引用.传指针这几种.但在java中,由于没有指针类型,其传参的方式也发生了相应的变化.在网上找了找,按我之前的理解,java中传 ...
- java 传参方式--值传递还是引用传递
java 传参方式--值传递还是引用传递 参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递.写它是为了揭穿普遍存在的一种神话,即认为 Java 应用程序按引用 ...
- 关于Java函数传参以及参数在函数内部改变的问题——JAVA值传递与引用最浅显的说明!
看了很多关于阐述JAVA传参到底是值传递还是引用的问题,有些说得很肤浅让人感觉似懂非懂的感觉,但是好像又能解决一些问题,然后就止步了.还有一些则是,讲得很深奥,看着好像很有道理的样子,但是其实还是没怎 ...
- angularjs简单实现$http.post(CORS)跨域及$http.post传参方式模拟jQuery.post
1.开启angularjs的CORS支持 .config(function($httpProvider) { // CORS post跨域配置 $httpProvider.defaults.useXD ...
- react中的传参方式
react是一个SPA模式,即组件嵌套租,在一个单页面的应用中组件间的数值传递是必不可少的,主要的传参方式大致有一下几种: 1,在挂载的地方给组件传参 ReactDOM.rander(<a na ...
- Web API中的传参方式
在Restful风格的WebApi的里面,API服务的增删改查,分别对应着Http Method的Get / Post / Delete /Put,下面简单总结了Get / Post /Delete ...
随机推荐
- iOS8新增加的frameworks, 在目前基于7以上开发的情况下, 使用下列sdk要注意设置成optional
Added frameworks: AVKitCloudKitCoreAudioKitCoreAuthenticationHealthKitHomeKitLocalAuthenticationMeta ...
- 步步为营 SharePoint 开发学习笔记系列总结
转:http://www.cnblogs.com/springyangwc/archive/2011/08/03/2126763.html 概要 为时20多天的sharepoint开发学习笔记系列终于 ...
- ruby编程语言-学习笔记1
安装完 ruby ri irb ruby-devel 1. 先来个简单的,写个helloworld 给新手们 (terminal中,# 代表root权限,$ 代表用户权限, 前面的就不写了.) # ...
- Visual Studio 2012 Professional 密钥
Visual Studio 2012 Professional 密钥 4D974-9QX42-9Y43G-YJ7JG-JDYBP
- [BILL WEI] SQL 巧用临时表
在写sql 的时候,我们有时候,只需要拿出某些特定的数据,去跟一些表进行关联,但是如果直接通过表关联的话,可能拿到 的数据有冗余,这个时候,我们就可以巧用临时表,讲自己需要的特定数据筛选出来,然后组成 ...
- ActiveMQ, RabbitMQ和ZeroMQ 选型关注点
选择MQ时,主要关注的特性,可能就以下几个: 通信模式(是否满足业务场景): ActiveMQ: queue(producer/consumer), topic(publisher/subsriber ...
- 【vijos1642】班长的任务
思路:这题就是学习一下算法优化,选择最优方案,O(nm) 可以学习一下<浅谈数据的合理组织>这篇论文 详见代码 #include<cstdio> #include<cst ...
- cloudstack安装篇1-linux命令修改IP信息
方式一: ifconfig eth0 192.168.1.18 netmask 255.255.255.0 说明:该种方式可以使改变即时生效,重启后会恢复为原来的IP 方式二: vi ...
- Linux的read命令
对于写bash脚本的朋友,read命令是不可或缺的,需要实践一下就可以了解read命令的大致用途: 编写一个脚本: #!/bin/bash # hao32 test read echo -e &quo ...
- glusterfs repo
Installing Gluster For RPM based distributions, if you will be using InfiniBand, add the glusterfs R ...