我是靠谱客的博主 温柔乐曲,最近开发中收集的这篇文章主要介绍Mybatis Mapper配置文件sql中的 List Array Map 的foreach 、in,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
【转】http://blog.csdn.net/qh_java/article/details/50754271
在mybatis 的配置文件中我们经常会用到集合 数组以及map的批量查询,这样我们就会经常用到 foreach 了,首先来看看foreach的属性:
这张图写的很全,很好就那个了你知道的……
知道了这些属性我们就来看看小demo:
1、List<Integer> IntList 、 List<String> strList 集合中存的是基本类型的
- <select id="dynamicForeachTest" parameterType="java.util.List" resultMap="Users">
- select id,name from t_blog where id in
- <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
- #{item}
- </foreach>
- </select>
2、List<Obect> objList 、List<Users> userList 引用类型的数据
- package soufun.com;
- /**
- *@author WHD
- *data 2016年2月27日
- */
- public class Users {
- private int id;
- private String name;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
- <select id="dynamicForeachTest" parameterType="java.util.List" resultMap="Users">
- select id,name from t_blog where id in
- <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
- #{item.id}
- </foreach>
- </select>
循环插入
- insert into t_blog(id,name) values
- <foreach collection="list" item="item" index="index" separator=",">
- (#{item.id},#{item.name})
- </foreach>
到这里都结束了,但还有个小事说一下,那就是in 的那个遍历,一般我们都是使用foreach 来组装 的但是有看到这样写的:
String name ="'w1','w2','w3','w4'";
- <select id="getByMap" resultMap="Users">
- SELECT * FROM t_blog where name in (${name})
- </select>
3、Map的使用,如果用Map做参数,则处理的方式和传一个基本变量一样直接引用就ok
- <select id="selectjdnotconfirmorder" parameterType="java.util.Map" resultMap="result">
- select bzOrderId,jdOrderId,name,mobile,success from jdorderinfo where jdIsOrder = ${notSubmit} and success =${success}
- </select>
- Map<String,Integer> hashMap= new HashMap<String,Integer>();
- hashMap.put("notSubmit", notSubmit);
- hashMap.put("success", state);
4、mybatis中的# 和$ 的区别,#的变量是带单引号的而$是不带单引号的,就比如上面的notSubmit 和success两个变量是int型的所以不用#而是$,因为是数字而不是字符。
最后
以上就是温柔乐曲为你收集整理的Mybatis Mapper配置文件sql中的 List Array Map 的foreach 、in的全部内容,希望文章能够帮你解决Mybatis Mapper配置文件sql中的 List Array Map 的foreach 、in所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复