MyBatis Generator 批量插入插件
提供了一个批量插入batchInsert方法,因为方法使用了使用了JDBC的getGenereatedKeys方法返回插入主键,所以只能在MYSQL和SQLServer下使用。 建议配合数据Model属性对应Column获取插件(ModelColumnPlugin)插件使用,会把批量插入方法从batchInsert(@Param(“list”) List list)增强为batchInsert(@Param(“list”) List list, @Param(“insertColumns”) Tb.Column … insertColumns),实现类似于insertSelective插入列!具体实现可以参照我的mybatis-generator-plugin,下面是具体使用方法。
一、依然是在Mybatis Generator增加插件依赖(插件最新版本查看);
<!-- mybatis-generator 自动代码插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <!-- 配置文件 --> <configurationFile>src/main/resources/mybatis-generator.xml</configurationFile> <!-- 允许移动和修改 --> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <dependencies> <!-- jdbc 依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency> <dependency> <groupId>com.itfsw</groupId> <artifactId>mybatis-generator-plugin</artifactId> <version>1.0.5</version> </dependency> </dependencies> </plugin>
二、mybatis-generator.xml配置文件中增加插件配置;
<!-- 批量插入插件 --> <plugin type="com.itfsw.mybatis.generator.plugins.BatchInsertPlugin"/>
三、具体使用;
public class Test { public static void main(String[] args) { // 构建插入数据 List<Tb> list = new ArrayList<>(); list.add( new Tb.Builder() .field1(0) .field2("xx0") .field3(0) .createTime(new Date()) .build() ); list.add( new Tb.Builder() .field1(1) .field2("xx1") .field3(1) .createTime(new Date()) .build() ); // 普通插入,插入所有列 this.tbMapper.batchInsert(list); // !!!下面按需插入指定列(类似于insertSelective),需要数据Model属性对应Column获取插件(ModelColumnPlugin)插件 this.tbMapper.batchInsert(list, Tb.Column.field1, Tb.Column.field2, Tb.Column.field3, Tb.Column.createTime); } }