mybatis獲取批量插入的主鍵自增id


一、寫一個實體類

public class UserInfo {
    private long userId;
    private String userAccount;
    private String userPassword;
    private String userName;
    private int userStatus;
    private String userCreateDatetime;
    private String userRegisterIp;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public String getUserAccount() {
        return userAccount;
    }

    public void setUserAccount(String userAccount) {
        this.userAccount = userAccount;
    }

    public String getUserPassword() {
        return userPassword;
    }

    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }

    public int getUserStatus() {
        return userStatus;
    }

    public void setUserStatus(int userStatus) {
        this.userStatus = userStatus;
    }

    public String getUserCreateDatetime() {
        return userCreateDatetime;
    }

    public void setUserCreateDatetime(String userCreateDatetime) {
        this.userCreateDatetime = userCreateDatetime;
    }

    public String getUserRegisterIp() {
        return userRegisterIp;
    }

    public void setUserRegisterIp(String userRegisterIp) {
        this.userRegisterIp = userRegisterIp;
    }
}

 

 

二、插入的mybatis insert語句

<insert id="batchInsert" parameterType="list" keyProperty="userId" keyColumn="user_id" useGeneratedKeys="true">
      insert into system_user(
        user_account,
        user_password,
        user_name,
        user_status,
        user_create_datetime,
        user_register_ip
      ) values
        <foreach collection="list" item="item" index="index" separator=",">
            (
                #{item.userAccount},
                #{item.userPassword},
                #{item.userName},
                #{item.userStatus},
                #{item.userCreateDatetime},
                #{item.userRegisterIp}
            )
        </foreach>
    </insert>

 

三、dao接口

int batchInsert(List<UserInfo> data);

 

然后再遍歷data list里面的UserInfo實例,發現屬性userId已經賦值為自增的id的值

 

 

第二種方法,單參數是map的時候。參數不是一個實體。

<!-- 添加 -->
    <insert id="insert" parameterType="map" keyProperty="operlog_id" useGeneratedKeys="true">
        insert into system_oper_log
            (
                user_account,
                operlog_url,
                operlog_status,
                operlog_ip,
                operlog_exception,
                operlog_type,
                operlog_before,
                operlog_after
            )values(
                #{user_account},
                #{operlog_url},
                #{operlog_status},
                #{operlog_ip},
                #{operlog_exception},
                #{operlog_type},
                #{operlog_before},
                #{operlog_after}
            )
    </insert>

 

然后再返回的map參數里面,返現多了一個鍵,叫做operlog_id

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM