Springboot中useGeneratedKeys用法小結(jié)
在Spring Boot項(xiàng)目中,useGeneratedKeys
是 MyBatis 框架中的一個(gè)參數(shù),用于指定是否允許 JDBC 支持自動生成主鍵。這個(gè)參數(shù)可以在三個(gè)不同的位置設(shè)置:全局配置文件、XML 映射器和接口映射器。
全局配置文件
可以在 MyBatis 的全局配置文件 mybatis-config.xml
中的 <settings>
元素內(nèi)設(shè)置 useGeneratedKeys
參數(shù)。例如:
<settings> <setting name="useGeneratedKeys" value="true"/> </settings>
這樣設(shè)置后,所有接口映射器中的插入操作都會嘗試獲取自動生成的主鍵,但對 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 對象中的屬性名,keyColumn
指定了數(shù)據(jù)庫中的列名,這樣在插入操作后,MyBatis 會將生成的主鍵值回填到對應(yīng)的 Java 對象屬性中。
接口映射器
在接口映射器中,可以使用 @Options
注解來設(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 對象中的屬性,keyColumn
指定了數(shù)據(jù)庫中的列名,useGeneratedKeys
設(shè)置為 true
表示啟用自動生成主鍵。
請注意,如果在接口映射器中設(shè)置了 useGeneratedKeys
參數(shù),那么這個(gè)設(shè)置會覆蓋全局配置文件中相同的設(shè)置。
如果在配置了 useGeneratedKeys
后,插入操作沒有返回預(yù)期的主鍵值,可能是因?yàn)閿?shù)據(jù)庫驅(qū)動不支持自動生成主鍵,或者配置有誤。確保數(shù)據(jù)庫表配置了自動生成主鍵,并且 JDBC 驅(qū)動支持這一特性。
到此這篇關(guān)于Springboot中useGeneratedKeys用法小結(jié)的文章就介紹到這了,更多相關(guān)Springboot useGeneratedKeys內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過netty把百度地圖API獲取的地理位置從Android端發(fā)送到Java服務(wù)器端的操作方法
這篇文章主要介紹了通過netty把百度地圖API獲取的地理位置從Android端發(fā)送到Java服務(wù)器端,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10詳解java中的PropertyChangeSupport與PropertyChangeListener
這篇文章主要介紹了詳解java中的PropertyChangeSupport與PropertyChangeListener的相關(guān)資料,需要的朋友可以參考下2017-09-09Java實(shí)現(xiàn)數(shù)據(jù)庫連接的最詳細(xì)教程分享
JDBC,Java?Database?Connectivity,即Java數(shù)據(jù)庫連接,是?Java?中的一套和數(shù)據(jù)庫進(jìn)行交互的API,本文就來講講Java如何利用JDBC實(shí)現(xiàn)數(shù)據(jù)庫的連接吧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-01java字節(jié)碼框架ASM操作字節(jié)碼的方法淺析
這篇文章主要給大家介紹了關(guān)于java字節(jié)碼框架ASM如何操作字節(jié)碼的相關(guān)資料,文中通過示例代碼介紹的很詳細(xì),有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01