前言
在使用Mybatis或者Mybatis Plus框架开发的时候,要实现批量插入操作,毕竟一条一条插入,数据量庞大的时候,很慢
Mybatis实现批量插入
定义实体类
kotlin
@Data
public class User {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
*
*/
private String name;
}
定义dao层
csharp
public interface UserMapper extends BaseMapper<User> {
void insertBatch(List<User> list);
}
maper.xml
xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.demomybatisplus.mapper.UserMapper">
<resultMap id="BaseResultMap" type="org.example.demomybatisplus.model.User">
<id property="id" column="id" />
<result property="name" column="name" />
</resultMap>
<sql id="Base_Column_List">
id,name
</sql>
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO user
(id, name)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.name})
</foreach>
</insert>
</mapper>
总结
这样使用sql语句插入的话,效率比较快,使用提供的方法的话,有可能是一条一条插入,比较慢