MyBatis中的多字段IN查询方式
目录
- MyBATis多字段IN查询
- 目标SQL
- Mapper接口定义
- 调用持久化层
- MyBatis XML
- 总结
MyBatis多字段IN查询
目标SQL
select * from demo t where (t.id, t.name) in (('1001', '张三'), ('1002', '李四'));
Mapper接口定义
//mappwww.devze.comer接口定义 List<Map<String, Object>> getResult(@http://www.devze.comParam("list") List<Map<String, Stwww.devze.comring>> 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, Strijsng> 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=")" separXieBjJqpator=","> (#{item.id},#{item.name}) </foreach> </select>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论