1. 程式人生 > 程式設計 >詳解MyBatis配置typeAliases的方法

詳解MyBatis配置typeAliases的方法

0x00:前言參考

之前的《MyBatis 中 SqlMapConfig 配置檔案詳解》記了一下 MyBatis 中的核心配置檔案各個標籤的作用和使用場景,這篇文章細說一下配置檔案中 typeAliases 標籤的詳細使用。

0x01:標籤介紹

在 MyBatis 的 sql 對映配置檔案中,需要使用 paramterType、resultType 來設定 sql 語句的輸入輸出引數,一般引數都是基本的資料型別或封裝型別,但都需要宣告該型別的全路徑,java.lang.String,或者 cn.com.mybatis.pojo.User,這時就可以通過 typeAliases 別名來設定,簡化複雜度

0x02:程式碼示例

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

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

當通過設定 MyBatis 的全域性配置檔案 SqlMapConfig 中的 typeAliases 屬性後,就可以為 sql 對映檔案中的輸入 / 輸出引數設定類型別名,然後在 sql 對映配置檔案中指定輸入輸出引數型別時使用的別名。首先,SqlMapConfig 配置檔案示例如下:

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

這樣就可以在 sql 對映配置檔案中使用別名來指定輸入 / 輸出引數的型別了,其示例程式碼如下:

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

0x03:別名拓展

像剛才的 JavaBean,User 是放在 cn.com.mybatis.pojo 包裡的,包裡可能也會存在其他多個 JavaBean,這時候一個一個配置別名就會很麻煩,這時候就需要批量定義別名,批量指定很簡單,只要指定包名即可,之後程式會為包下的所有類都自動加上別名,其定義別名的規範就是對應包裝類的類名首字母變為小寫,其示例程式碼如下:

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

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

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

0x04:常見類型別名彙總

MyBatis 已經為 Java 常見型別預設指定了別名,可以直接使用。因為有一些基本資料型別和包裝型別的名稱一樣(例如基本資料型別 byte 和包裝型別 java.lang.Byte),所以在基本的資料型別前面加了下劃線 “_” 來以此區分(byte 別名就是_byte,java.lang.Byte 別名就是 byte)。常見的型別對應別名如下:

0x05:總結

在開發中,經常使用別名,可以提高開發效率,簡化配置。

到此這篇關於詳解MyBatis配置typeAliases的方法的文章就介紹到這了,更多相關MyBatis配置typeAliases內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!