mybatis獲取插入後記錄的主鍵

2021-10-11 08:09:23 字數 960 閱讀 4321

如果有如下情況,在插入資料庫記錄後,想得到插入記錄的主鍵,用以後面的業務**

那麼mybatis針對這種情況也提供了相應的支援(不支援批量插入):

mysql是原聲自增id;假設自增主鍵的欄位名就為id

insert into ( name, age )

values ( #, # )

比普通的插入就多了兩個屬性 usegeneratedkeys="true" 表示開啟返回自增id

keyproperty="id" 表示返回主鍵的名字。

那麼在業務**中就可以用下列語句接收:

假設實體類為user

usernew.getid //即為插入後的自增id

其實,mysql的自增主鍵可以用select last_insert_id();來得到, 所以,還有一種寫法:

select last_insert_id() as id

insert into name,age

values ( #, # )

order="after"的意思是 mysql是insert執行後由表分配自增長的值,所以指定「after」為記錄插入後獲取主鍵。

和mysql的獲取主鍵方式剛好相反,oracle是獲取到自增長的值後再進行插入記錄操作,在執行insert sql前必須指定乙個主鍵值給要插入的記錄所以要要在"before"的時候拿到自增的序列,然後用selectkey的方式注入到入參對映中即可。假設自增長還是id

select seq_table.nextval from dual

insert into id,name,age

values

(# #, # )

這裡的id就是selectkey獲得的自增id。

接收方式和mysql一樣,在獲取自增主鍵時,最好使用實體接收。

MyBatis 獲取插入記錄的 id

現在的專案改用 guns 了,也是乙個很不錯的框架,用起來也感覺很不錯,上手也挺方便的。畢竟對於只是應用層面的知識,也基本上就是看看手冊,熟悉熟悉就可以輕鬆上手了。如果是想要深入,或者刨根問底,那麼就需要有一定的基本功了,比如需要完全熟練掌握 j a 的語法特性,熟悉設計模式 對於我而言,暫時還是達...

mysql 如何高效獲取新插入的最後記錄

在mysql中,使用auto increment型別的id欄位作為表的主鍵,並用它作為其他表的外來鍵,形成 主從表結構 這是資料庫設計中常見的用法。但是在具體生成id的時候,我們的操作順序一般是 先在主表中插入記錄,然後獲得自動生成的id,以它為基礎插入從表的記錄。這裡面有個困難,就是插入主表記錄後...

Mybatis插入記錄獲取返回主鍵的配置方法

方法共有2種 1.使用jdbc方式返回主鍵自增的值 在配置insert時使用usegeneratedkeys屬性,這種方法只適用於支援自增主鍵的資料庫,如mysql,對於不支援自增主鍵的資料庫不適用,如oracle。usegeneratedkeys設為true後,mybatis會使用jdbc的get...