MyBatis 獲取插入記錄的 id

2022-09-16 07:15:15 字數 1241 閱讀 3799

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

實體類中沒有填充 insert 後的 id

通常執行 insert 後會返回語句的影響行數,我說的是資料庫的 insert 語句。但是很多時候,我們需要的不是影響行數,而需要的是返回 insert 後新紀錄的 id 值。

在 guns 框架中,我使用了其提供的預設的 insert 方法,在 insert 後,實體類中並沒有填充 insert 後的 id ,這樣對於在 service 進行一對多插入時就很不方便了。至於為什麼在 insert 後 guns 沒有在實體類中填充 id ,我猜測是因為資料庫 id 列使用了「自增列」的原因,僅僅是猜測。

mybatis 獲取插入記錄的 id

在 mybatis 中對 insert 有一些屬性的描述,其中包括:

usegeneratekeys:該屬性令 mybatis 使用 jdbc 的 getgeneratedkeys 方法來獲取由資料庫內部生成的主鍵,該屬性預設為 false;

keyproperty:唯一標記乙個屬性, mybatis 會通過 getgeneratedkeys 的返回值或者通過 insert 語句的 selectkey 子元素設定它的鍵值,預設為 unset。

因此,在 guns 中自行增加了乙個 insert 的方法,對應的 mybatis 如下所示:

1

2<

insert

id="insert"

keyproperty

="id"

usegeneratedkeys

="true"

parametertype

="">34

insert

>

具體的語句和引數型別就不往出貼了,只要增加了 keyproperty 和 usegeneratedkeys 兩個屬性 guns 在進行 insert 後,會將 insert 的 id 值填充入實體類中。

mybatis獲取插入後記錄的主鍵

如果有如下情況,在插入資料庫記錄後,想得到插入記錄的主鍵,用以後面的業務 那麼mybatis針對這種情況也提供了相應的支援 不支援批量插入 mysql是原聲自增id 假設自增主鍵的欄位名就為id insert into name,age values 比普通的插入就多了兩個屬性 usegenerat...

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

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

MyBatis獲取插入記錄的自增長字段值

開發中經常遇到插入一條資料之後,需要獲得新插入記錄自增長生成的id。方法如下 insert into spares spares id,spares name,spares type id,spares spec values mybatis執行完插入語句後,自動將自增長值賦值給物件spares的屬...