溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

UUID怎么在MyBatis中生成

發(fā)布時間:2020-12-31 15:34:49 來源:億速云 閱讀:416 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)UUID怎么在MyBatis中生成,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

1.<selectKey>標簽屬性說明

  • keyProperty:設(shè)置需要自動生成鍵值的列

  • order:可選值BEFORE和AFTER,設(shè)置為BEFORE會先執(zhí)行selectKey語句,設(shè)置keyProperty屬性,再執(zhí)行insert語句;設(shè)置為AFTER會先執(zhí)行insert語句再執(zhí)行selectKey語句

  • resultType:結(jié)果類型,MyBatis 通常可以自己檢測到,但這并不影響給它一個確切的類型。MyBatis 允許使用任何基本的數(shù)據(jù)類型作為鍵值,也包括String 類型。

  • statementType:支持STATEMENT、PREPARED 和CALLABLE 語句類型,分別對應(yīng)Statement, PreparedStatement 和CallableStatement

2.XML方式(mysql數(shù)據(jù)庫為例)

使用 <selectKey>標簽,keyProperty設(shè)置生成的UUID所綁定的屬性,如設(shè)置為id,即會將值綁定到參數(shù)對象User的id屬性上;order屬性設(shè)置為BEFORE,先執(zhí)行selectKey語句

<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>標簽類似。before屬性設(shè)置為true,類似于<selectKey>標簽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);

測試代碼:

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());

看完上述內(nèi)容,你們對UUID怎么在MyBatis中生成有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI