关于mybatis中,批量增删改查以及參数传递的问题
1、參数传递的问题
大多数情况下,我们都是利用map作为參数,而且大部分情况下都是仅仅有一个參数。
可是,我们也能够利用@param注解,来传入多个參数,此时,mybatis会自己主动将參数封装成map,便于在配置文件里获取。
当使用数组或者list等作为參数时,必须在遍历时指出參数类型,并且假设仅仅有一个參数,名称无关紧要。我们能够以不论什么名称获得该參数。
比如例如以下传入数组作为參数
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
我们必须在collection中指明參数类型为array
2、批量加入的问题
对于批量处理数据的问题。mybatis为我们提供了<foreach>语句来帮助我们遍历集合的问题。
对于1中的配置文件,item指明当前遍历的对象。collection指明传入的集合类型,open指明迭代以什么符号開始,separator指明迭代间用什么符号切割,close指明迭代用什么符号结束。还有index能够指明迭代的索引。
1、批量查询
从以上的函数中能够看出,我们传入list作为查询条件的集合,必须指明collection为list,这时的parameterType属性能够不必指明,同一时候多个迭代之间以or切割。终于组成的查询语句相当于where () or ()
or () ...这里有一点须要注意一下。open与colse指明的符号仅仅是在迭代開始和结束时才加入,而在<foreach></foreach>中间指明的每次都会加入,倘若我们在这里也加上open = "(" 与close = ")" 此时终于形成的语句就相当于where ( () or () or ().. )不符号sql的规范,导致报错
2、批量加入
3、批量删除
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
4、批量更新
參考文章:http://www.suyunyou.com/aid5.html
最新文章
- .NET 环境中使用RabbitMQ
- mysql 用drop和delete方法删除用户的区别
- 第9章 硬件抽象层:HAL
- ROS 新手教程 命令汇总
- Android sdk manager不能更新下载缓慢的解决方法
- (九)STM32之AFIO
- supplicant
- CentOS6 下MySQL option file
- 【转】 wget 命令用法详解
- 在Raspberry Pi上安装XBMC
- oracle to_date函数(转载)
- API的文档自动生成——基于CDIF的SOA基本能力
- Django“少折腾”
- chrome添加扩展程序
- ping命令返回的TTL值判断操作系统
- STM32云平台连接培训20180814
- The last packet successfully received from the server was 20,519 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
- background低版本安卓浏览器不支持复合属性,要分开写
- ES6 数值的扩展
- Find the squareroot