MyBatis 使用类型别名作为返回类型

类型别名就是为Java类型设置一个短的名字。 它只和XML配置有关,存在的意义仅在于用来减少类完全限定名的冗余。也就是说在SQL映射文件中涉及到写返回Java类型的地方,只需要写Java类的别名即可,不需要写Java类的完全限定名称了。

1. 别名配置

1.1. 普通 Spring 项目配置

mybatis-config.xml中进行别名配置。

可以直接指定实体类:

xml 复制代码
<typeAliases>
    <typeAlias alias="Author" type="domain.blog.Author"/>
    <typeAlias alias="Blog" type="domain.blog.Blog"/>
    <typeAlias alias="Comment" type="domain.blog.Comment"/>
    <typeAlias alias="Post" type="domain.blog.Post"/>
    <typeAlias alias="Section" type="domain.blog.Section"/>
    <typeAlias alias="Tag" type="domain.blog.Tag"/>
</typeAliases>

当这样配置时,alias指定的是别名,如果没写该属性,则默认为类名首字母小写。

也可以指定包名:

只指定一个包名,这样MyBatis就会在该包名下面搜索需要的Java Bean

xml 复制代码
<typeAliases>
    <package name="domain.blog"/>
</typeAliases>

当这样配置时,每一个在包domain.blog下的JavaBean,在没有使用@Alias注解的情况下,会默认使用类名首字母小写来作为它的别名。

比如domain.blog.Author的别名为author;若有注解,则别名为其注解值。比如下面的注解表示domain.blog.Author的别名为myAuthor

java 复制代码
@Alias("myAuthor")
public class Author {
    ...
}

1.2. SpringBoot 项目配置

application.properties或者application.yml文件中进行配置。

java 复制代码
mybatis.type-aliases-package=cn.udesk.kun.model

MyBatis扫描指定包下的Java Bean,可以和注解@Alias一起使用。

2. 常见类型别名

这是一些为常见的Java类型内建的相应的类型别名。它们都是不区分大小写的,注意对基本类型名称重复采取的特殊命名风格。这个一般用于parameterTyperesultTypejavaTypeofType属性。

别名 映射的 Java 类型 别名 映射的 Java 类型
_byte byte byte Byte
_long long long Long
_short short short Short
_int int int Integer
_integer int integer Integer
_double double double Double
_float float float Float
_boolean boolean boolean Boolean
string String
date Date
decimal BigDecimal bigdecimal BigDecimal
object Object
map Map hashmap HashMap
list List arraylist ArrayList
collection Collection
iterator Iterator
相关推荐
xiaogg36784 分钟前
springcloud oauth2 自定义token实现
spring boot·后端·spring cloud
pixcarp8 分钟前
Nginx实战部署与踩坑总结 附带详细配置教程
服务器·前端·后端·nginx·golang
神奇小汤圆16 分钟前
JAVA 面经汇总2026最新版,1100+ 大厂面试题附答案详解
后端
程序员老邢22 分钟前
【技术底稿 23】Ollama + Docker + Ubuntu 部署踩坑实录:网络通了,参数还在调
java·经验分享·后端·ubuntu·docker·容器·milvus
JackSparrow41432 分钟前
彻底理解Java NIO(一)C语言实现 单进程+多进程+多线程 阻塞式I/O 服务器详解
java·linux·c语言·网络·后端·tcp/ip·nio
小江的记录本34 分钟前
【微服务与云原生架构】Serverless架构、FaaS/BaaS、核心原理、优缺点
java·后端·微服务·云原生·架构·系统架构·serverless
神奇小汤圆38 分钟前
阿里云社招一面:数据库中有 1000 万数据的时候怎么分页查询?
后端
威迪斯特1 小时前
Cobra框架:Go语言命令行开发的现代化利器
开发语言·前端·后端·golang·cobra·交互模型·命令行框架
happymaker06261 小时前
MyBatis学习日记——day01
学习·mybatis
君子剑mango1 小时前
mybatis plus逻辑删除
mybatis