MyBatis“别名扫描”功能

type-aliases-package 是 MyBatis 的一个"别名扫描"功能,作用一句话就能说完:

让你在 XML 映射文件里写类名时,可以省略全限定名(包名),只写简单类名。


✅ 举个例子(没有配置时)

假设你有这个实体类:

java 复制代码
package com.sky.entity;

public class Employee {
    private Long id;
    private String userName;
}

你在 EmployeeMapper.xml 里写 SQL 时,必须写全类名:

xml 复制代码
<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 里就可以简写成:

xml 复制代码
<select id="getById" resultType="Employee">
    SELECT * FROM employee WHERE id = #{id}
</select>

✅ 效果:省掉包名,写起来更短,可读性更好。


⚠️ 注意事项

  1. 只能扫描指定包及其子包;
  2. 类名必须唯一(不同包下不能有同名类,否则别名冲突);
  3. 如果你用了注解 @Alias("Emp") 显式指定别名,MyBatis 会优先使用注解里的值。

✅ 一句话总结

type-aliases-package: com.sky.entity 就是告诉 MyBatis:

"以后在 XML 里写 resultType、parameterType 时,直接写类名就行,不用带包名。"

相关推荐
colinu14 分钟前
C++ 异步任务与线程生命周期:`std::async`、`future`、`thread`、`jthread` 与协作式退出
java·jvm·c++
蜗牛互联网34 分钟前
Python + JSON Schema 实现工单结构化输出与本地复核
java·人工智能·后端
逐光者93340 分钟前
STM32——SPI 屏 · Flash · 高速
java·前端·stm32
wuminyu1 小时前
ForkJoinPool窃取线程在扫描其他WorkQueue时的随机采样算法与Phase线程挂起唤醒机制解析
java·linux·c语言·jvm·c++
Sarvartha1 小时前
内部类知识
java·开发语言
Knight_AL1 小时前
从 EasyExcel 到 Apache Fesod:Java Excel 处理生态的一次重构
java·apache·excel
yuniko-n1 小时前
【JUC】集合线程安全
java
starzy19902 小时前
Flink SlotManager启动流程源码深度剖析:从ResourceManager到Slot分配的完整链路
java·大数据·flink
极光通讯2 小时前
服务器内存来料检验(IQC)实操:批次追溯、外观判定与上机验证
java·服务器·算法
4SAPI2 小时前
AI API Gateway平台哪个好?从架构视角看企业多模型网关选型与实践
java·大数据·人工智能·gateway·php