今天使用mybatis時,把資料庫切換成oracle,以前都是db2和mysql。
本來以為改個配置檔案就沒問題了,
結果發現oracle中建表的的主鍵自增不能像db2和mysql一樣來個identity自增。
oracle自增必須得配乙個sequence。
造成了配置檔案修改。
插入操作
對於自增主鍵的表,插入可以不配置插入的主鍵列。否則是必須的。
獲取主鍵
插入語句之前配置:主要是針對sequence主鍵而言,插入前必須指定乙個主鍵值給要插入的記錄。oracle、db2亦如此,方法是在插入語句標籤之前配置上:
select seq_test.nextval from dual
insert into
altname(primaryname,alternatename,type)values(#,#,#)
插入語句之後配置:蛀牙是針對自增主鍵的表而言,這類表在插入時不需要主鍵,而是在插入過程自動獲取乙個自增的主鍵。比如mysql
select last_insert_id()
insert into
altname(primaryname,alternatename,type)values(#,#,#)
當然,是否需要配置根據情況,只要能保證記錄有主鍵即可。一旦配置了,就可以在執行插入操作時獲取到新增記錄的主鍵。
注意:如果沒有配置那麼儲存後的物件的主鍵依舊為null.
mybatis insert返回主鍵
使用springboot整合shiro寫demo的時候發現乙個問題,當我在使用mybatis的insert標籤時,adduser usegeneratedkeys true keyproperty userid 插入一點問題也沒有,但是當我們拿到userid的時候永遠是1,因為它返回的是插入成功的數...
MyBatis insert操作返回主鍵
在使用mybatis做持久層時,insert語句預設是不返回記錄的主鍵值,而是返回插入的記錄條數 如果業務層需要得到記錄的主鍵時,可以通過配置的方式來完成這個功能 針對sequence主鍵而言,在執行insert sql前必須指定乙個主鍵值給要插入的記錄,如oracle db2,可以採用如下配置方式...
Mybatis insert返回主鍵ID
mybatis insert語句書寫insert id insertselective usegeneratedkeys true keyproperty fileid parametertype filealias insert into t file info insert usegenerat...