别名(typeAliases)是一个指代的名称。因为我们遇到的类全限定名过长,所以我们希望用一个简短的名称去指代它,而这个名称可以在MyBatis上下文中使用,在 MyBatis中别名是不分大小写的。一个 typeAliases的实例是在解析配置文件时生成的,然后长期保存在 Configuration对象中,这样就没有必要运行的时候再次生成它的实例了。
系统定义别名
通过org.apache.ibatis.type.TypeAliasRegistry可以查看所有系统定义的别名,主要是基本数据类型、字符串、基本数据类型数组、日期、容器类。
通过XML自定义别名
在mybatis-config.xml中通过<typeAliases>
元素可以自定义别名。
<typeAliases>
<typeAlias type="com.ankeetc.spring.domain.UserDomain" alias="user"/>
</typeAliases>
通过注解的方式自定义别名
<!-- 通过package扫描包 -->
<typeAliases>
<package name="com.ankeetc.spring.domain"/>
</typeAliases
@Alias("user")
public class UserDomain {
}
当配合上面的配置,MyBatis就会自动扫描包,将扫描到的类装载到上下文中。如果配置了包扫描的路径,而没有注解@Alias的类也会被MyBatis装载,MyBatis会自动把类名的第一个字母变为小写,作为MyBatis的别名。
附:内置基本类型别名
Mybatis已经为Java的常见类型默认制定了别名,可以直接使用。这里需要注意的是,有一些基本数据类型和包装数据类似的名称一样(除了包装类型中首字母大小写的类),故在基本数据雷西的前面加了下划线“_”作为区分。