mybatis批量操作
操作数据库的时候会经过这样一个流程:创建、打开、执行SQL、关闭连接, 创建和打开数据库连接对性能是有损失的,下面简单地说一下批量插入和逐条插入的区别。
- 逐条插入会执行50个创建-关闭动作,而批处理只会做一个创建-关闭动作,所以采用批处理的性能相对是高的;
- 单纯来讲逐条插入会创建多个事物,而批处理只会创建一个事物。
新增mapper: int batchSaveCategory(@Param("goodsCategoryDtoList") List goodsCategoryDtoList);
删除:
更新:
查找:
项目 | 价格 |
---|---|
collection | 必选参数。List<?>对象默认用list代替作为键,数组对象有array代替作为键,Map对象没有默认的键。 在作为入参时可以 使用@Param("keyName")来设置键,设置keyName后,list,array将会失效。例如上文新增mapper。 |
item | 必选参数。循环体中的对象的别名,在list和数组中是其中的对象,在map中是value。 |
index | 可选参数。在list和数组中,index是元素的下标,在map中,index是元素的key。 |
separator | 可选参数。元素之间的分隔符,例如在values(),in()的时候,separator=","会自动在元素中间用“,“隔开。 |
open | 可选参数。foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。 |
close | 可选参数。foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。 |