mybatis generator config 添加批量插入
时间: 2023-10-13 21:06:44 浏览: 79
要添加批量插入功能,可以在MyBatis Generator的配置文件中添加以下配置:
```xml
<table tableName="your_table_name" domainObjectName="YourDomainObjectName" enableSelectByExample="false"
enableDeleteByExample="false" enableCountByExample="false" enableUpdateByExample="false"
selectByPrimaryKeyQueryId="false" deleteByPrimaryKeyQueryId="false" insertSelective="true"
useGeneratedKeys="true">
<!-- 添加以下配置 -->
<generatedKey column="id" sqlStatement="JDBC" identity="true" />
<sql id="batchInsert">
insert into your_table_name(column1, column2, column3)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.column1}, #{item.column2}, #{item.column3})
</foreach>
</sql>
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="false">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
<include refid="batchInsert" />
</insert>
</table>
```
这里假设表名为`your_table_name`,领域对象名为`YourDomainObjectName`。为了实现批量插入,我们需要定义一个`<sql>`元素,它将生成一个包含多个值的INSERT语句。然后,我们定义一个`<insert>`元素,它引用了我们刚刚定义的`<sql>`元素,并将参数类型设置为`java.util.List`,表示我们将插入多个对象。最后,我们使用`SELECT LAST_INSERT_ID()`语句获取生成的ID。
在代码中,我们可以像这样调用批量插入方法:
```java
YourMapper mapper = sqlSession.getMapper(YourMapper.class);
List<YourDomainObjectName> list = new ArrayList<>();
list.add(new YourDomainObjectName(column1_1, column2_1, column3_1));
list.add(new YourDomainObjectName(column1_2, column2_2, column3_2));
mapper.batchInsert(list);
```
这样就可以实现批量插入了。
阅读全文