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
相关推荐
小七mod4 分钟前
【MyBatis】MyBatis与Spring和Spring Boot整合原理
spring boot·spring·mybatis
老任与码10 分钟前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
华子w90892585942 分钟前
基于 SpringBoot+VueJS 的农产品研究报告管理系统设计与实现
vue.js·spring boot·后端
星辰离彬1 小时前
Java 与 MySQL 性能优化:Java应用中MySQL慢SQL诊断与优化实战
java·后端·sql·mysql·性能优化
GetcharZp2 小时前
彻底告别数据焦虑!这款开源神器 RustDesk,让你自建一个比向日葵、ToDesk 更安全的远程桌面
后端·rust
jack_yin3 小时前
Telegram DeepSeek Bot 管理平台 发布啦!
后端
小码编匠3 小时前
C# 上位机开发怎么学?给自动化工程师的建议
后端·c#·.net
库森学长3 小时前
面试官:发生OOM后,JVM还能运行吗?
jvm·后端·面试
转转技术团队4 小时前
二奢仓店的静默打印代理实现
java·后端
蓝易云4 小时前
CentOS 7上安装X virtual framebuffer (Xvfb) 的步骤以及如何解决无X服务器的问题
前端·后端·centos