溫馨提示×

溫馨提示×

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

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

MyBatis如何進行配置typeAliases

發(fā)布時間:2020-10-27 16:05:26 來源:億速云 閱讀:193 作者:Leah 欄目:開發(fā)技術(shù)

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

0x01:標簽介紹

在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType、resultType 來設(shè)置 sql 語句的輸入輸出參數(shù),一般參數(shù)都是基本的數(shù)據(jù)類型或封裝類型,但都需要聲明該類型的全路徑,java.lang.String,或者 cn.com.mybatis.pojo.User, 這時就可以通過 typeAliases 別名來設(shè)置,簡化復雜度

0x02:代碼示例

例如之前介紹的模糊查詢示例,當不使用別名,而使用全路徑時,配置示例代碼如下:

<select id="findUserByUsername" parameterType="java.lang.String" resultType="cn.com.mybatis.pojo.User">
  SELECT * FROM USER WHERE username LIKE '%${value}%'
</select>

當通過設(shè)置 MyBatis 的全局配置文件 SqlMapConfig 中的 typeAliases 屬性后,就可以為 sql 映射文件中的輸入 / 輸出參數(shù)設(shè)置類型別名,然后在 sql 映射配置文件中指定輸入輸出參數(shù)類型時使用的別名。首先,SqlMapConfig 配置文件示例如下:

<typeAliases>
  <typeAlias alias="user" type="cn.com.mybatis.pojo.User"/>
  <typeAlias alias="str" type="java.lang.String"/>
</typeAliases>

這樣就可以在 sql 映射配置文件中使用別名來指定輸入 / 輸出參數(shù)的類型了,其示例代碼如下:

<select id="findUserByUsername" parameterType="str" resultType="user">
  SELECT * FROM USER WHERE username LIKE '%${value}%'
</select>

0x03:別名拓展

像剛才的 JavaBean,User 是放在 cn.com.mybatis.pojo 包里的,包里可能也會存在其他多個 JavaBean,這時候一個一個配置別名就會很麻煩,這時候就需要批量定義別名,批量指定很簡單,只要指定包名即可,之后程序會為包下的所有類都自動加上別名,其定義別名的規(guī)范就是對應包裝類的類名首字母變?yōu)樾?,其示例代碼如下:

<typeAliases>
  <package name="cn.com.mybatis.pojo"/>
</typeAliases>

這時設(shè)置的包名下的類就都有了別名,別名就是類名(首字母小寫),像剛才的 User 類,其別名就為 user。
 除了在配置文件中單獨的配置別名和批量的配置別名兩種方式外,還有一種方式,就是通過注解的方式來配置別名,方法也很簡單,在需要配置別名的類前通過 @Alias 注解即可,參數(shù)就是別名名稱,例如以下示例代碼:

@Alias("user")
public class User{
  //其他代碼
}

0x04:常見類型別名匯總

MyBatis 已經(jīng)為 Java 常見類型默認指定了別名,可以直接使用。因為有一些基本數(shù)據(jù)類型和包裝類型的名稱一樣(例如基本數(shù)據(jù)類型 byte 和包裝類型 java.lang.Byte),所以在基本的數(shù)據(jù)類型前面加了下劃線 “_” 來以此區(qū)分(byte 別名就是_byte,java.lang.Byte 別名就是 byte)。

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

向AI問一下細節(jié)

免責聲明:本站發(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