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批量操作数据,提升效率的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 怎么批量更新操作

Mybatis批量操作

MyBatis批量新增和更新

2500-使用MyBatis操作MySQL进行批量更新的注意事项

mybatis 批量增删改查操作的几种操作以及创建数据库索引

MyBatis学习总结_10_批量操作