MyBatis实现In查询(XTHS 实测)
一. SQL语法实现In查询
- SQL语句实现In查询
1 | SELECT * FROM user_info WHERE user_name in ( 'xixi' , 'haha' ); |
二. MyBatis实现In查询
错误范例:如果在MyBatis中也使用类似SQL语法来实现In查询,像如下示例,肯定会报错,因为MyBatis不支持这样的写法。
1 2 3 4 | // Dao 层 List<UserInfoDO> getUserInfoByNames(@Param( "name" ) String names); // 其中,names= "xixi,haha" ; |
1 2 3 4 | <! -- UserInfoMapper.xml文件 --> < select id= "getUserInfoByNames" resultType= "com.zijikanwa.test.model.UserInfoDO" > SELECT * FROM user_info WHERE user_name in (#{names}) </ select > |
-
正确途径:MyBatis提供foreach语句实现In查询。foreach语法如下:
1 2 3 4 5 6 7 8 9 | 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 |
- MyBatis实现In查询的具体细节如下所示。
2. Dao层方法的参数有多个
- 当Dao层方法的参数有多个时,有两种方式实现:
- 法1:使用@Param(“xxx”)进行参数绑定
- 法2:通过Map来传参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~