ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mybatis-plus 使用In查询

2021-12-15 20:04:19  阅读:198  来源: 互联网

标签:List ids collection 查询 参数 Param new mybatis plus


第一种
在Dao接口中自定义SQL查询,拼接xml字符串

UserDaoMapper.java

@Select("<script>"
+"select * from user where id in"
+ "<foreach item='id' index='index' collection='ids' open='(' separator=',' close=')'>"
+ "#{id}"
+ "</foreach>"
+ "</script>")
List<User> getUserList(@Param("ids") List<String> ids);

第二种
在Mapper.xml中自定义SQL

UserDaoMapper.xml

<delete id="deleteUserByIds" parameterType="String">
delete from t_user where user_id in
<foreach collection="array" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</delete>

UserDaoMapper.java

/**
* 批量删除用户
*
* @param ids 需要删除的数据
* @return 结果
*/
public int deleteOperLogByIds(String[] ids);

备注:

标签的collection参数的设置问题,如果参数像上面的例子这样用@Param注解表明了,则用@Param标明的值,否则:

如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以,collection的属性值为Map的key

第三种
List<User> list = this.baseMapper.selectList(new LambdaQueryWrapper<User>().in(User::getUserId,new String[]{"11","22","33","44"}));
List<User> list2 = this.baseMapper.selectList(new LambdaQueryWrapper<User>().in(User::getUserId,new ArrayList<String>(){{this.add("11");this.add("22")}}));

备注:

QueryWrapper + lambda = LambdaQueryWrapper

标签:List,ids,collection,查询,参数,Param,new,mybatis,plus
来源: https://www.cnblogs.com/exmyth/p/15694775.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有