
1.7.2 <typeAliases>标签
<typeAliases>标签的作用是为 Java 的 POJO 类起别名,如果不取别名,配置文件若要引用一个POJO实体类,必须输入全限定性类名,全限定性类名比较长,用了别名之后引用起来就简单多了。例如,实体类Student的全限定性类名是com.lifeng.entity.Student,未起别名之前,映射文件的select语句块若要引用POJO类Student必须使用全限定性类名,示例如下:

在主配置文件mybatis-config.xml中定义别名如下:
<typeAliases>
<typeAlias alias="Student" type="com.lifeng.entity.Student"/>
</typeAliases>
上面代码的意思是为全限定类名com.lifeng.entity.Student创建别名Student,定义了别名之后,映射文件中只须使用别名Student就能引用全限定类com.lifeng.entity.Student。这样上例代码可简化如下:

如果有多个类要使用别名,一种方法是逐个配置别名,多个<typeAlias>示例如下:
<typeAliases>
<typeAlias alias="Student" type="com.lifeng.entity.Student"/>
<typeAlias alias="Classes" type="com.lifeng.entity.Classes"/>
<typeAlias alias="Course" type="com.lifeng.entity.Course"/>
<typeAlias alias="Employee" type="com.lifeng.entity.Employee"/>
</typeAliases>
这样固然可以实现目的,但代码比较冗长,还有一个办法是通过自动扫描包的形式自定义别名,代码示例如下:
<typeAliases>
<typeAlias name="com.lifeng.entity"/>
</typeAliases>
这样配置后,MyBatis会自动扫描<typeAlias>节点的name属性指定的包com.lifeng.entity,并自动将该包下的所有实体类以首字母为小写的类名作为别名,例如它会自动给com.lifeng.entity. Student分配一个别名student,其他类推。
项目案例:使用别名简化了MyBatis映射文件。(项目源码参见本书配套资源:第1章/使用别名简化MyBatis映射文件/mybatis14)
实现步骤:
方法一:
(1)复制上一个项目mybatis13为mybatis14,修改主配置文件,添加别名如下:


(2)修改映射文件StudentMapper.xml,使用别名,代码如下:

(3)运行测试,结果不变。
方法二:
(1)修改主配置文件,用扫描包的方式配置别名,代码如下:


(2)修改映射文件StudentMapper.xml,使用别名,代码如下:

(3)运行测试,结果不变。