mybatis mysql 批量insert 返回主键

本文介绍了在Mybatis中如何在批量插入数据后获取自增主键ID,重点讲解了适用于支持自增主键的MySQL数据库的方法,包括设置`useGenerateKeys`和`keyProperty`属性,以及升级至Mybatis 3.3.1版后的变化。同时也提及了不支持自增主键数据库时使用`<selectKey>`标签的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mybatis在插入单条数据的时候有两种方式返回自增主键:    mybatis3.3.1支持批量插入后返回主键ID,

首先对于支持自增主键的数据库:useGenerateKeys和keyProperty。

不支持生成自增主键的数据库:<selectKey>。

这里主要说下批量插入数据时如何返回主键ID(注意要将mybatis升到3.3.1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public  class  UserInfo
{
     private  int  userId;
     private  String userName;
     private  StringuserPwd;
     public  long  getUserId() {
         return  userId;
     }
     public  void  setUserId( long  userId) {
         this .userId = userId;
     }
     public  String getUserName() {
         return  userName;
     }
     public  void  setUserName(String userName) {
         this .userName = userName;
     }
     public  String getUserPwd() {
         return  userPwd;
     }
     public  void  setUserPwd(String userPwd) {
         this .userPwd = userPwd;
     }
    
 
    
}

  

Dao 

1
public  interface  UserDao{
1
int  insertTest(List<UserInfo> userInfo);
1
}<br>

  

mapper

1
2
3
4
5
6
7
8
< insert  id="insertTest" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="userId">
    insert into t_sys_course (user_name,user_pwd)
    values
     < foreach  collection="list" item="item" index="index" 
          separator=","> 
          (#{item.userName,jdbcType=VARCHAR},#{item.userPwd,jdbcType=VARCHAR}) 
      </ foreach
  </ insert >

serviceImpl

1
2
3
4
public   List<UserInfo> saveCheckin(List<UserInfo> userInfo) {
         userDao.insertCheckin(userInfo);
         return  userInfo;
     }<br> //返回的对象List里面已经包含主键ID
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值