mybatis oracle 批量插入返主键
时间: 2023-07-03 14:17:44 浏览: 157
在 MyBatis 中进行批量插入操作时,如果你想要返回插入后的主键,可以通过以下步骤实现。
1. 在 MyBatis 的映射文件中编写插入语句,并设置 useGeneratedKeys=true 和 keyProperty 属性,例如:
<insert id="batchInsertUsers" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
insert into USER (NAME, AGE) values (#{name}, #{age})
</insert>
2. 在 Java 代码中调用插入方法时,使用 MyBatis 的 ExecutorType.BATCH 执行器类型,并在插入方法的参数中传入一个空的结果集,例如:
List<User> users = new ArrayList<>();
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.batchInsertUsers(users);
sqlSession.commit();
} finally {
sqlSession.close();
}
3. 在插入方法执行完毕后,你可以在结果集中获取插入后的主键,例如:
for (User user : users) {
System.out.println(user.getId());
}
这样就可以在 Oracle 数据库中进行批量插入操作,并返回插入后的主键。注意,这种方式只适用于主键是自增长的情况。如果主键不是自增长的,你需要对插入语句进行相应的修改,例如使用序列来生成主键。
阅读全文