MyBatis“别名扫描”功能
type-aliases-package
是 MyBatis 的一个“别名扫描”功能,作用一句话就能说完:
让你在 XML 映射文件里写类名时,可以省略全限定名(包名),只写简单类名。
✅ 举个例子(没有配置时)
假设你有这个实体类:
package com.sky.entity;public class Employee {private Long id;private String userName;
}
你在 EmployeeMapper.xml
里写 SQL 时,必须写全类名:
<select id="getById" resultType="com.sky.entity.Employee">SELECT * FROM employee WHERE id = #{id}
</select>
✅ 配置了 type-aliases-package: com.sky.entity
后
MyBatis 会在 项目启动时 自动扫描 com.sky.entity
包下的所有类,并把它们注册成“别名”——别名就是类名本身(首字母不区分大小写)。
于是 XML 里就可以简写成:
<select id="getById" resultType="Employee">SELECT * FROM employee WHERE id = #{id}
</select>
✅ 效果:省掉包名,写起来更短,可读性更好。
⚠️ 注意事项
- 只能扫描指定包及其子包;
- 类名必须唯一(不同包下不能有同名类,否则别名冲突);
- 如果你用了注解
@Alias("Emp")
显式指定别名,MyBatis 会优先使用注解里的值。
✅ 一句话总结
type-aliases-package: com.sky.entity
就是告诉 MyBatis:
“以后在 XML 里写resultType
、parameterType
时,直接写类名就行,不用带包名。”