有些時候註解可能依賴某些規則,比如取消user表的遞增規則,而將其規則改為:
當使用者表為空時,id設定為1
當使用者表不為空時,id設定為當前最大id加3
mybatis對這樣的場景也提供了支援,它主要依賴於selectkey元素
它的keyproperty指定了採用哪個屬性作為pojo的主鍵。resulttype告訴mybatis將返回乙個long型的結果集,而order設定成before,說明它將於當前設定的sql前執行。select if(max(id) = null, 1, max(id)+3) from user
insert into user(id, name, age) values(#, #, #)
注意:插入語句中一定也要將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...