mybatis插入數據後返回自增主鍵ID詳解

一、更改mapper文件

增加useGeneratedKeys, keyProperty, keyColumn三個屬性。keyProperty和keyColumn分別代表數據庫記錄主鍵字段和java對象成員屬性名

  <insert id="insert" parameterType="com.product.selftraining.repo.entity.Consumer"
  useGeneratedKeys="true" keyProperty="id" keyColumn="id">
    insert into consumer (id, email, account, 
      username, chathead, signature, 
      regTime, password, type, 
      telephone)
    values (#{id,jdbcType=INTEGER}, #{email,jdbcType=VARCHAR}, #{account,jdbcType=DOUBLE}, 
      #{username,jdbcType=VARCHAR}, #{chathead,jdbcType=VARCHAR}, #{signature,jdbcType=VARCHAR}, 
      #{regtime,jdbcType=TIMESTAMP}, #{password,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, 
      #{telephone,jdbcType=VARCHAR})
  </insert>

二、如何使用

1.錯誤的示範:其實xml裏面sql執行後返回的值是受影響行數

public Result register(LoginInfo user) {
    Long userId = loginMapper.insertLogin(user);
    System.out.println(userId);
}

2.正確方式

public Result register(LoginInfo user) {
    loginMapper.insertLogin(user);
    System.out.println(user.getUserId());
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章