mybatis中自定義主鍵規則

2021-09-26 04:12:06 字數 458 閱讀 8644

有些時候註解可能依賴某些規則,比如取消user表的遞增規則,而將其規則改為:

當使用者表為空時,id設定為1

當使用者表不為空時,id設定為當前最大id加3

mybatis對這樣的場景也提供了支援,它主要依賴於selectkey元素

select if(max(id) = null, 1, max(id)+3) from user

insert into user(id, name, age) values(#, #, #)

它的keyproperty指定了採用哪個屬性作為pojo的主鍵。resulttype告訴mybatis將返回乙個long型的結果集,而order設定成before,說明它將於當前設定的sql前執行。

注意:插入語句中一定也要將id插入表中,否則主鍵生成規則不會生效

MyBatis主鍵回填和自定義主鍵

1.主鍵回填jdbc中的statement物件在執行插入的sql後,可以通過getgeneratedkeys方法獲得資料庫生成的主鍵,這樣便能達到獲取主鍵的功能。在insert語句中,有乙個開關屬性 usegeneratedkeys,用來控制是否開啟這個功能,它的預設值是false。當開啟了這個開關...

Hibernate 自定義主鍵

hibernate 自帶主鍵生成功能,當然也可以自定義生成主鍵 hibernate 自定義生成主鍵主要要實現 org.hibernate.id.identifiergenerator介面。之後便是書寫 public class usergenerator implements identifierg...

mybatis 自定義TypeHandler 的坑

1 場景 2 坑 自定義之後也無效的問題 3 講解 basetypehandler implements typehandler 通過getresult方法呼叫實際介面,模板模式 4 typehandler的型別,處理什麼型別的資料 public class emptystringifnull ex...