mybatis使用@Insert @SelectKey 執行插入語句時獲得主鍵自增長值(轉)


@Insert(" insert into table(c1,c2) " +
        " values (#{c1},#{c2}) ")
@SelectKey(resultType = long.class,keyColumn = "id",before = false,statement = "SELECT LAST_INSERT_ID() AS id",keyProperty = "id")
int addQuestion(Instance instance);
/** public class Instance{ 
private  long id;
 private String c1;
     private String c2;
}
**/

before=false:由於mysql支持自增長主鍵,所以先執行插入語句,再獲取自增長主鍵值。

      keyColumn:自增長主鍵的字段名

      keyProperty: 實體類對應存放字段,注意數據類型和resultType一致

     statement:實際執行的sql語句

   SelectKey返回的值存在實體類中,線程安全,所以不論插入成功與否id都會安全自增

 

另一個比較好的文檔:https://blog.csdn.net/xu1916659422/article/details/77921912
————————————————
版權聲明:本文為CSDN博主「charlieshawn」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_41810184/article/details/81011023


免責聲明!

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



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