Springboot中useGeneratedKeys用法小結(jié)
在Spring Boot項(xiàng)目中,useGeneratedKeys
是 MyBatis 框架中的一個(gè)參數(shù),用于指定是否允許 JDBC 支持自動(dòng)生成主鍵。這個(gè)參數(shù)可以在三個(gè)不同的位置設(shè)置:全局配置文件、XML 映射器和接口映射器。
全局配置文件
可以在 MyBatis 的全局配置文件 mybatis-config.xml
中的 <settings>
元素內(nèi)設(shè)置 useGeneratedKeys
參數(shù)。例如:
<settings> <setting name="useGeneratedKeys" value="true"/> </settings>
這樣設(shè)置后,所有接口映射器中的插入操作都會(huì)嘗試獲取自動(dòng)生成的主鍵,但對(duì) XML 映射器不起作用。
XML 映射器
在具體的 XML 映射文件中,可以在 <insert>
標(biāo)簽中設(shè)置 useGeneratedKeys
屬性。例如:
<insert id="addBigdataGroup" parameterType="BigdataGroup" useGeneratedKeys="true" keyProperty="groupId" keyColumn="group_id"> insert into bigdata_group (group_id, group_name, comment, business_line, create_by, remark, create_time) values(#{groupId}, #{groupName}, #{comment}, #{businessLine}, #{createBy}, #{remark}, sysdate()) </insert>
這里 keyProperty
指定了 Java 對(duì)象中的屬性名,keyColumn
指定了數(shù)據(jù)庫(kù)中的列名,這樣在插入操作后,MyBatis 會(huì)將生成的主鍵值回填到對(duì)應(yīng)的 Java 對(duì)象屬性中。
接口映射器
在接口映射器中,可以使用 @Options
注解來(lái)設(shè)置 useGeneratedKeys
參數(shù)。例如:
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") @Insert("insert into test(name,descr,url,create_time,update_time) values(#{name},#{descr},#{url},now(),now())") Integer insertOneTest(Test test);
在這里,keyProperty
指定了 Java 對(duì)象中的屬性,keyColumn
指定了數(shù)據(jù)庫(kù)中的列名,useGeneratedKeys
設(shè)置為 true
表示啟用自動(dòng)生成主鍵。
請(qǐng)注意,如果在接口映射器中設(shè)置了 useGeneratedKeys
參數(shù),那么這個(gè)設(shè)置會(huì)覆蓋全局配置文件中相同的設(shè)置。
如果在配置了 useGeneratedKeys
后,插入操作沒(méi)有返回預(yù)期的主鍵值,可能是因?yàn)閿?shù)據(jù)庫(kù)驅(qū)動(dòng)不支持自動(dòng)生成主鍵,或者配置有誤。確保數(shù)據(jù)庫(kù)表配置了自動(dòng)生成主鍵,并且 JDBC 驅(qū)動(dòng)支持這一特性。
到此這篇關(guān)于Springboot中useGeneratedKeys用法小結(jié)的文章就介紹到這了,更多相關(guān)Springboot useGeneratedKeys內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過(guò)netty把百度地圖API獲取的地理位置從Android端發(fā)送到Java服務(wù)器端的操作方法
這篇文章主要介紹了通過(guò)netty把百度地圖API獲取的地理位置從Android端發(fā)送到Java服務(wù)器端,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10詳解java中的PropertyChangeSupport與PropertyChangeListener
這篇文章主要介紹了詳解java中的PropertyChangeSupport與PropertyChangeListener的相關(guān)資料,需要的朋友可以參考下2017-09-09Java實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接的最詳細(xì)教程分享
JDBC,Java?Database?Connectivity,即Java數(shù)據(jù)庫(kù)連接,是?Java?中的一套和數(shù)據(jù)庫(kù)進(jìn)行交互的API,本文就來(lái)講講Java如何利用JDBC實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接吧2023-05-05Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法示例
這篇文章主要介紹了Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了spring面向切面AOP定義切點(diǎn)的具體步驟、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2020-01-01解決MyBatis中Enum字段參數(shù)解析問(wèn)題
本文主要介紹了解決MyBatis中Enum字段參數(shù)解析問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08java字節(jié)碼框架ASM操作字節(jié)碼的方法淺析
這篇文章主要給大家介紹了關(guān)于java字節(jié)碼框架ASM如何操作字節(jié)碼的相關(guān)資料,文中通過(guò)示例代碼介紹的很詳細(xì),有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01