mybatis多字段in查询
目标sql
select * from demo t where (t.id, t.name) in (('1001', '张三'), ('1002', '李四'));
mapper接口定义
//mapper接口定义
list<map<string, object>> getresult(@param("list") list<map<string, string>> list);
调用持久化层
//组装数据
list<map<string, string>> list = lists.newarraylist();
map<string, string> map1 = maps.newhashmap();
map1.put("id", "1001");
map1.put("name", "张三");
list.add(map1);
map<string, string> map2 = maps.newhashmap();
map2.put("id", "1002");
map2.put("name", "李四");
list.add(map2);
//调用dao层
list<map<string, object>> result = mapper.getresult(list);
mybatis xml
<select id="getresult" resulttype="java.util.hashmap">
select * from demo t where (t.id, t.name) in
<foreach collection="list" item="item" open="(" close=")" separator=",">
(#{item.id},#{item.name})
</foreach>
</select>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论