一、单个参数:
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>
相关推荐
多个参数传递 传入单个实体(JavaBean/Map) 传入多个实体 传入集合 使用场景 在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的...
在 Mybatis 中,传递多个参数的一种常用做法是把多个参数都放在 Map 中,然后传递这个 Map 作为参数。例如: ```java public void insertAreaDivInfor(HashMap map); ``` 对应的 XML 代码为: ```xml insert into ...
我们看到, 直接在可视化工具里用SQL写 ccf.last_update_timestamp between TIMESTAMP '2019-12-13' AND TIMESTAMP '2019-12-13' 甚至去掉 TIMESTAMP 都是可以的, pgSQL可以自动把字符串给你转换成日期格式, ...
Mybatis是一款流行的持久化框架,它提供了多种方式来传递多个参数,在实际开发中,我们经常会遇到需要传递多个参数的情况,本文将介绍Mybatis传递多个参数的三种实现方法。 第一种实现方法:使用占位符 在Dao层的...
当我们需要传递多个参数时,可以使用Map对象。在Mapper XML文件中,可以通过`<foreach>`标签遍历Map的键值对。例如,查询用户根据用户名和年龄: ```xml SELECT * FROM user WHERE username = #{username} AND ...
在MyBatis框架中,当需要传递多个参数时,通常有三种常见的解决办法。这些方法各有优缺点,选择哪种取决于个人喜好和项目需求。下面将详细阐述这三种解决方案。 **第一种方案:使用位置参数** 在DAO层,你可以定义...
当需要传递多个参数时,可以使用`Map, Object>`作为方法的参数。在Java代码中,可以创建一个Map实例并将所有参数放入其中,然后将Map对象传递给Mapper接口的方法。例如: ```java Map, Object> params = new ...
本篇文章将详细探讨如何在 `association` 和 `collection` 的 `column` 属性中传入多个参数,以实现更复杂的查询需求。 首先,`association` 用于表示一对一的关系,而 `collection` 用于表示一对多的关系。在映射...
MyBatis3传递多个参数(Multiple Parameters) MyBatis3传递多个参数是MyBatis框架中的一种重要特性,它允许开发者在执行数据库查询时传递多个参数,有多种方式可以实现多个参数的传递,本文将详细介绍四种常见的方法...
本文将深入探讨MyBatis如何连续传递多个参数,帮助开发者更好地理解和应用这一功能。 首先,MyBatis允许开发者通过XML或注解来定义SQL语句,这些语句可以包含多个动态参数。动态参数的处理方式有两种,一种是#{},...
Mybatis中传递多个参数的4种方法总结 Mybatis是当前最流行的持久层框架之一,广泛应用于各种项目中。使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数。面对各种复杂的业务场景,传递参数也是一...
在 MyBatis 中,使用 @Param 注解可以实现多个接口参数的传递,这可以解决在实际开发中遇到的多个参数传递问题。本文将详细介绍 MyBatis 中多个接口参数的注解使用方式,并提供了实际的示例代码。 单参数 在 ...
在使用MyBatis进行数据库操作时,我们经常会遇到需要传递多个参数的情况。在这个问题中,开发者遇到了一个关于如何正确传入参数#{index}的问题。在MyBatis中,#{index}是参数占位符,它用于动态SQL的拼接,但具体...
使用Map参数的一个好处是,可以将多个参数封装在一起,通过Map的键来区分不同的参数。例如,你可以同时传入`departmentId`和`jobId`,并根据需求在映射文件中使用它们。 在实际应用中,MyBatis会自动将方法参数转换...
MyBatis支持传入多个参数,可以通过`@Param`注解指定参数名。 1. Map参数示例: ```java Map, Object> params = new HashMap(); params.put("username", "John"); params.put("age", 30); List<User> users = ...
在MyBatis中,参数的传递方式有很多种,主要包括基本类型的参数、对象参数、多个参数以及使用注解的方式。下面将详细讲解这些方法及其注意事项。 1. 单个参数传入基本类型或直接传入类类型 当参数为基本类型如`...
3. 使用了@Param注解或有多个参数时,将参数转换为Map类型,并且还根据参数顺序存储了key为param1,param2等的参数名。 参数传递方式 ------------- 在MyBatis中,有两种使用参数的方式:接口形式和命名空间方式。...
可以通过HashMap将多个参数作为键值对传递: ```java public User queryUser(Map, Object> map); ``` 在XML中,可以使用键名来引用HashMap中的值: ```xml select * from user where user_name = #{...
其中,使用association或collection来传递多参数子查询是一种常用的方法。本文将对MyBatis的association和collection标签进行详细讲解,并提供实践示例。 什么是association和collection 在MyBatis中,association...