MyBatis对PostgreSQL批量新增(设置主键序列自增)
在MyBatis中,要实现对PostgreSQL批量新增并设置主键为序列自增,你需要做以下几步:
- 在PostgreSQL中创建序列并设置为主键自增。
- 在MyBatis的mapper XML文件中配置批量插入的SQL语句。
- 确保在MyBatis配置文件中正确配置了PostgreSQL的JDBC驱动。
以下是一个简单的例子:
- 创建序列(假设表名为
your_table
,序列名为your_table_id_seq
):
CREATE SEQUENCE your_table_id_seq START 1;
- 在
YourTableMapper.xml
中配置批量插入的SQL:
<insert id="batchInsert" useGeneratedKeys="true" keyProperty="id">
INSERT INTO your_table (id, column1, column2)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(nextval('your_table_id_seq'), #{item.column1}, #{item.column2})
</foreach>
</insert>
- 在MyBatis配置文件中配置PostgreSQL JDBC驱动(通常是在
mybatis-config.xml
中):
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="org.postgresql.Driver"/>
<property name="url" value="jdbc:postgresql://localhost:5432/your_database"/>
<property name="username" value="your_username"/>
<property name="password" value="your_password"/>
</dataSource>
</environment>
</environments>
<!-- 其他配置 -->
</configuration>
- 在你的Java代码中使用Mapper来执行批量插入:
List<YourTable> yourTableList = //... 初始化你的数据列表
yourTableMapper.batchInsert(yourTableList);
确保YourTable
类中有id
属性,并且在执行批量插入时,MyBatis会自动处理主键的生成。
评论已关闭