SqlServer+mybatis-plus无法批量插入并返回自增id列表的解决方案

118 阅读1分钟

SqlServer+mybatis-plus无法批量插入并返回自增id列表的解决方案

  • service用selectList调用xml里的插入方法:
List<MyEntity> myEntityList = ...;
SqlSessionFactory sqlSessionFactory = SqlHelper.sqlSessionFactory(MyEntity.class);
SqlSession sqlSession = sqlSessionFactory.openSession();
List<Integer> ids = sqlSession.selectList("myInsertbacth", myEntityList);
  • mapper.xml中用 OUTPUT INSERTED.id 输出自增的主键id列表,自增注解请自行配置在实体类
<insert id="batchInsertUsers" parameterType="list"> 
INSERT INTO users (name) 
OUTPUT INSERTED.id 
VALUES 
<foreach collection="list" item="user" separator=","> 
(#{user.name}) 
</foreach>
</insert>