MyBatis生成UUID的實(shí)現(xiàn)
1.<selectKey>標(biāo)簽屬性說(shuō)明
- keyProperty:設(shè)置需要自動(dòng)生成鍵值的列
- order:可選值BEFORE和AFTER,設(shè)置為BEFORE會(huì)先執(zhí)行selectKey語(yǔ)句,設(shè)置keyProperty屬性,再執(zhí)行insert語(yǔ)句;設(shè)置為AFTER會(huì)先執(zhí)行insert語(yǔ)句再執(zhí)行selectKey語(yǔ)句
- resultType:結(jié)果類型,MyBatis 通??梢宰约簷z測(cè)到,但這并不影響給它一個(gè)確切的類型。MyBatis 允許使用任何基本的數(shù)據(jù)類型作為鍵值,也包括String 類型。
- statementType:支持STATEMENT、PREPARED 和CALLABLE 語(yǔ)句類型,分別對(duì)應(yīng)Statement, PreparedStatement 和CallableStatement
2.XML方式(mysql數(shù)據(jù)庫(kù)為例)
使用 <selectKey>標(biāo)簽,keyProperty設(shè)置生成的UUID所綁定的屬性,如設(shè)置為id,即會(huì)將值綁定到參數(shù)對(duì)象User的id屬性上;order屬性設(shè)置為BEFORE,先執(zhí)行selectKey語(yǔ)句
<insert id="save" parameterType="User">
<selectKey keyProperty="id" resultType="string" order="BEFORE">
select replace(uuid(), '-', '') as id from dual
</selectKey>
insert into t_user(id, user_sex) values( #{id}, #{user_sex} )
</insert>
3.注解方式
使用@SelectKey注解,屬性和<selectKey>標(biāo)簽類似。before屬性設(shè)置為true,類似于<selectKey>標(biāo)簽order屬性設(shè)置為BEFORE
@Insert("insert into t_user(id, user_sex) values(#{id}, #{user_sex})")
@SelectKey(keyProperty = "id", resultType = String.class, before = true,
statement = "select replace(uuid(), '-', '') as id from dual")
public int save(User user);
測(cè)試代碼:
User user = new User();
user.setUser_age(22);
user.setUser_sex(1);
int count = userMapper.save(user);
System.out.println("count:" + count);
System.out.println("id:" + user.getId());
到此這篇關(guān)于MyBatis生成UUID的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MyBatis生成UUID內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot 中使用 JSON Schema 校驗(yàn)復(fù)雜JSO
在數(shù)據(jù)交換領(lǐng)域,JSON Schema 以其強(qiáng)大的標(biāo)準(zhǔn)化能力,為定義和規(guī)范 JSON 數(shù)據(jù)的結(jié)構(gòu)與規(guī)則提供了有力支持,下面給大家介紹Spring Boot 中使用 JSON Schema 校驗(yàn)復(fù)雜JSON數(shù)據(jù)的過(guò)程,感興趣的朋友跟隨小編一起看看吧2024-08-08
MyBatis?實(shí)現(xiàn)多對(duì)多中間表插入數(shù)據(jù)
這篇文章主要介紹了MyBatis?實(shí)現(xiàn)多對(duì)多中間表插入數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
解決@Autowired注入static接口的問(wèn)題
這篇文章主要介紹了解決@Autowired注入static接口的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Java雙向鏈表倒置功能實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Java雙向鏈表倒置功能實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
StringBuffer與StringBuilder底層擴(kuò)容機(jī)制與常用方法
這篇文章主要給大家介紹了StringBuffer、StringBuilder底層擴(kuò)容機(jī)制與常用方法,有感興趣的小伙伴跟著小編一起來(lái)學(xué)習(xí)吧2023-07-07
Java實(shí)現(xiàn)自動(dòng)生成縮略圖片
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)自動(dòng)生成縮略圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

