MyBatis # 使用mybatis批量操作数据,提升效率
Posted LRcoding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis # 使用mybatis批量操作数据,提升效率相关的知识,希望对你有一定的参考价值。
当有多条数据需要插入数据库,如果使用循环依次插入,需要频繁的操作数据库,不符合安全及性能要求,所以使用mybatis的批量插入进行操作
1. controller层
public void insertDemo() {
List<Map<String, Object>> list = new ArrayList<>();
// 将需要处理的多条数据存入list
for(int i = 0; i < 数据长度; i++) {
Map<String, Object> map = new HashMap<>();
// 根据具体的业务逻辑,存放对应的数据
map.put("name", name);
map.put("age", age);
map.put("birthday", birthday);
list.add(map);
}
demoController.insert(list);
}
2. service层
// service
void insert(List<Map<String, Object>> map);
// serviceImpl
@Override
public void insert(List<Map<String, Object>> map) {
// TODO
}
3. Mapper层
<insert id="insert" parameterType="java.util.List">
insert into student (name, age, birthday)
values
<foreach collection="list" item="stud" index="index" separator=",">
(
#{stud.name, jdbcType=VARCHAR},
#{stud.age, jdbcType=INTEGER},
#{stud.birthday, jdbcType=DATETIME}
)
</foreach>
</insert>
4. 其他使用
查询
<select id="selectList" resultType="java.util.Map" parameterType="java.util.Map">
select
name, age, birthday
from
student
where
id in
<foreach collection="ids" index="index" item="stud" open="(" separator="," close=")">
#{stud, jdbcType=INTEGER}
</foreach>
</select>
以上是关于MyBatis # 使用mybatis批量操作数据,提升效率的主要内容,如果未能解决你的问题,请参考以下文章
2500-使用MyBatis操作MySQL进行批量更新的注意事项