Springboot中useGeneratedKeys用法小結
在Spring Boot項目中,useGeneratedKeys 是 MyBatis 框架中的一個參數(shù),用于指定是否允許 JDBC 支持自動生成主鍵。這個參數(shù)可以在三個不同的位置設置:全局配置文件、XML 映射器和接口映射器。
全局配置文件
可以在 MyBatis 的全局配置文件 mybatis-config.xml 中的 <settings> 元素內設置 useGeneratedKeys 參數(shù)。例如:
<settings>
<setting name="useGeneratedKeys" value="true"/>
</settings>
這樣設置后,所有接口映射器中的插入操作都會嘗試獲取自動生成的主鍵,但對 XML 映射器不起作用。
XML 映射器
在具體的 XML 映射文件中,可以在 <insert> 標簽中設置 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 會將生成的主鍵值回填到對應的 Java 對象屬性中。
接口映射器
在接口映射器中,可以使用 @Options 注解來設置 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 設置為 true 表示啟用自動生成主鍵。
請注意,如果在接口映射器中設置了 useGeneratedKeys 參數(shù),那么這個設置會覆蓋全局配置文件中相同的設置。
如果在配置了 useGeneratedKeys 后,插入操作沒有返回預期的主鍵值,可能是因為數(shù)據(jù)庫驅動不支持自動生成主鍵,或者配置有誤。確保數(shù)據(jù)庫表配置了自動生成主鍵,并且 JDBC 驅動支持這一特性。
到此這篇關于Springboot中useGeneratedKeys用法小結的文章就介紹到這了,更多相關Springboot useGeneratedKeys內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
idea2022創(chuàng)建javaweb項目步驟(超詳細)
本文主要介紹了idea2022創(chuàng)建javaweb項目步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07
SpringBoot集成P6spy實現(xiàn)自定義SQL日志打印
本文主要介紹了SpringBoot集成P6spy實現(xiàn)自定義SQL日志打印,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07

