1. 程式人生 > >mybatis插入語句執行後返回結果

mybatis插入語句執行後返回結果

第一種方法: 

<!-- ***************重點掌握插入語句返回結果的做法**************** -->

  <insert id="insertUser" parameterType="cn.com.gjw.pojo.User">
  <!-- 將插入資料的主鍵返回,由SELECT LAST_INSERT_ID()得到,只適用於自增主鍵 
  keyProperty:指定將查詢到的結果返回到parameterType所指的物件的對應屬性中
  order:指的是執行順序,即為AFTER時,則在insert語句執行之後執行。
  -->
  <selectKey keyProperty="id" order="AFTER" resultType="int">
  SELECT LAST_INSERT_ID()
  </selectKey>
  insert into user(userName, sex, address, birthday) values(#{userName}, #{sex}, #{address}, #{birthday})

  </insert>

第二種方法:

<insert id="insertUser" parameterType="cn.com.gjw.pojo.User" useGeneratedKeys="true" keyProperty="id">
  insert into user(userName, sex, address, birthday) values(#{userName}, #{sex}, #{address}, #{birthday})
</insert>

第三種方法:如果id不是自增的,當表中沒有記錄式,設定id值為1,否則取id的最大值加2作為新的主鍵,設定方式為:

<insert id="insertUser" parameterType="cn.com.gjw.pojo.User" useGeneratedKeys="true" keyProperty="id">
  <selectKey keyProperty="id" order="BEFORE" resultType="int">
  select if(max(id) is null, 1, max(id) + 2) as newId from user
  </selectKey>
  insert into user(userName, sex, address, birthday) values(#{userName}, #{sex}, #{address}, #{birthday})
</insert>

程式碼中,執行完插入操作後可以列印測試是否取到了剛插入的記錄的id:

System.out.println(user.getId());