MyBatis实现In查询(XTHS 实测)

发布时间 2023-09-10 11:03:25作者: 信铁寒胜

一. SQL语法实现In查询

  1. SQL语句实现In查询
SELECT * FROM user_info WHERE user_name in ('xixi','haha');

  

二. MyBatis实现In查询

错误范例:如果在MyBatis中也使用类似SQL语法来实现In查询,像如下示例,肯定会报错,因为MyBatis不支持这样的写法。

// Dao 层
List<UserInfoDO> getUserInfoByNames(@Param("name") String names); 

// 其中,names="xixi,haha";
<!-- UserInfoMapper.xml文件 -->
<select id="getUserInfoByNames" resultType="com.zijikanwa.test.model.UserInfoDO">
    SELECT * FROM user_info WHERE user_name in (#{names})
</select>

  

  1. 正确途径:MyBatis提供foreach语句实现In查询。foreach语法如下:

collection:该属性的对应方法的参数类型可以是List、数组、Map。如果方法的参数类型不属于前三种,则必须和方法参数@Param指定的元素名一致。
item: 表示迭代过程中每个元素的别名。可以随便起名,但是必须跟元素中的#{}里面的名称一致。
index:表示迭代过程中每次迭代到的位置(下标)
open:前缀
close:后缀
separator:分隔符,表示迭代时每个元素之间以什么分隔。
————————————————
版权声明:本文为CSDN博主「Jothan Zhong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43985303/article/details/130074235

  

  1. MyBatis实现In查询的具体细节如下所示。

 

2. Dao层方法的参数有多个

  1. 当Dao层方法的参数有多个时,有两种方式实现: