詳解MyBatis配置typeAliases的方法
0x00:前言參考
之前的《MyBatis 中 SqlMapConfig 配置文件詳解》記了一下 MyBatis 中的核心配置文件各個標簽的作用和使用場景,這篇文章細說一下配置文件中 typeAliases 標簽的詳細使用。
0x01:標簽介紹
在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType、resultType 來設置 sql 語句的輸入輸出參數,一般參數都是基本的數據類型或封裝類型,但都需要聲明該類型的全路徑,java.lang.String,或者 cn.com.mybatis.pojo.User, 這時就可以通過 typeAliases 別名來設置,簡化復雜度
0x02:代碼示例
例如之前介紹的模糊查詢示例,當不使用別名,而使用全路徑時,配置示例代碼如下:
<select 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 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內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
