学科分类
目录
SSM框架

<typeAliases>元素

<typeAliases>元素用于为配置文件中的Java类型设置一个简短的名字,即设置别名。别名的设置与XML配置相关,其使用的意义在于减少全限定类名的冗余。

使用<typeAliases>元素配置别名的方法如下:

<!-- 定义别名 -->
<typeAliases>
  <typeAlias alias="user" type="com.itheima.po.User"/>
</typeAliases>

上述示例中,<typeAliases>元素的子元素<typeAlias>中的type属性用于指定需要被定义别名的类的全限定名;alias属性的属性值user就是自定义的别名,它可以代替com.itheima.po.User使用在MyBatis文件的任何位置。如果省略alias属性,MyBatis会默认将类名首字母小写后的名称作为别名。

当POJO类过多时,还可以通过自动扫描包的形式自定义别名,具体示例如下:

<!-- 使用自动扫描包来定义别名 -->
<typeAliases>
  <package name="com.itheima.po"/>
</typeAliases>

上述示例中,<typeAliases>元素的子元素<package>中的name属性用于指定要被定义别名的包,MyBatis会将所有com.itheima.po包中的POJO类以首字母小写的非限定类名来作为它的别名,比如com.itheima.po.User的别名为user,com.itheima.po.Customer的别名为customer等。

需要注意的是,上述方式的别名只适用于没有使用注解的情况。如果在程序中使用了注解,则别名为其注解的值,具体如下:

@Alias(value = "user") 
public class User {
  //User的属性和方法
...
}

除了可以使用<typeAliases>元素自定义别名外,MyBatis框架还默认为许多常见的Java类型(如数值、字符串、日期和集合等)提供了相应的类型别名,如表1所示。

表1 MyBatis默认别名

别名 映射的类型
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string Sring
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator

表1所列举的别名可以在MyBatis中直接使用,但由于别名不区分大小写,所以在使用时要注意重复定义的覆盖问题。

点击此处
隐藏目录