MyBatis动态SQL之foreach用法
来源:互联网 发布:ipv6 端口号 编辑:程序博客网 时间:2024/06/05 05:55
首先简单说下foreach六个属性
item 每一次迭代结果 collection 循环集合成指定类型 separator 元素之间的分隔符,可选
open 开始符号,可选 close 关闭符号,可选 index list和数组的序号,可选
接着来看一下循环查询的例子
在user.xml中加入
<select id="selectUserForeach" resultType="User" parameterType="list"> select * from user <where> id in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </where></select>
在测试代码中加入
ArrayList<Integer> ides=new ArrayList(); ides.add(2); ides.add(8); ides.add(9); List<User> ap=session.selectList("selectUserForeach", ides); for(User temp:ap) { System.out.println("用户ID="+temp.getId()+"用户名="+temp.getUserName() +"密码="+temp.getPassword()); }
运行,控制台就会打印出id为2,8,9的相关属性的值,执行的SQL语句为select * from user WHERE id in ( ? , ? , ? )
//循环赋值
在user.xml中加入
<insert id="insertUserForeach"> insert into User (userName, password) values <foreach item="item" index="key" collection="list" open="" separator="," close="">(#{item.userName}, #{item.password}) </foreach> </insert>
在测试代码中加入
//动态SQL之foreach 循环赋值 ArrayList<User> jList=new ArrayList(); User one=new User("kb1","8866"); User two=new User("kb2","8866"); jList.add(one); jList.add(two); session.insert("insertUserForeach",jList); session.commit();
运行,执行的SQL语句为insert into User (userName, password) values (?, ?) , (?, ?)
若把user.xml中的item.userName改成key,则mybatis会自动把userName的值从0开始自动递增的赋值。
以上便是MyBatis中foreach的例子,欢迎指出不足之处,互相交流,谢谢。
阅读全文
0 0
- MyBatis动态SQL之foreach用法
- mybatis 动态sql之foreach
- mybatis之foreach用法
- mybatis学习之路----动态sql之foreach set
- Mybatis 动态SQL语句foreach
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- Mybatis 参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- MyBatis参数传入集合之foreach动态sql
- Vue使用Bootstrap实现AdminLTE风格(仿CoPilot)
- 使用ZXing实现二维码扫描
- 通过无线AP轻松突破内网准入控制
- pic 16 定时器 012
- IDEA 上的 Git使用
- MyBatis动态SQL之foreach用法
- 十大软件测试的原则
- iOS——给View add阴影效果
- 质数快速筛法;欧拉函数线性打表;因子个数,因子和打表
- linux中安装opencv with ffmpeg and with python
- android studio 蓝牙透传
- EclipseLink学习(五) --- 缓存
- Docker学习思考
- ubuntu中把安装的软件启动图标加到桌面上如DataGrip