typeAliases
:MyBatis中的别名处理器,可以为我们的java类型起别名
别名可以用到哪里呢?
可以用到EmployeeMapper.xml
中的
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee">
select * from tb1_employee where id = #{id}
</select>
以上的resultType
我们就可以用别名代替
在mybatis-config.xml
中加入以下设置:
<!-- 3、typeAliases:别名处理器:可以为我们的java类型起别名
别名不区分大小写
-->
<typeAliases>
<!-- 1、typeAlias:为某个java类型起别名
type:指定要起别名的类型全类名;默认别名就是类名小写;employee
alias:指定新的别名
-->
<!-- <typeAlias type="com.atguigu.mybatis.bean.Employee" alias="emp"/> -->
<!-- 2、package:为某个包下的所有类批量起别名
name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写),)
-->
<package name="com.atguigu.mybatis.bean"/>
<!-- 3、批量起别名的情况下,使用@Alias注解为某个类型指定新的别名 -->
</typeAliases>
批量起别名可能也会有不好的地方,比如说我有一个A
包,A
包下有一个employee
类和A
包的子包B
包,B
包中也有一个employee
类,这时为A包批量起别名,就会出问题了,因为有两个employee
类嘛
这时我们可以到A
包下的employee
类下加入一个注释
@Alias("emp")
public class Employee {
这样就可以改变默认的别名了,现在别名已经变为emp
了,所以我们可以在EmployeeMapper.xml
中这样去应用
<select id="getEmpById" resultType="emp">
select * from tb1_employee where id = #{id}
</select>
建议还是使用全类名好,起别名的话你要找resultType
中别名对应的那个类也是挺麻烦的