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
相关推荐
moxiaoran57531 分钟前
Flask学习笔记(一)
后端·python·flask
你的人类朋友19 分钟前
🔒什么是HMAC
后端·安全·程序员
盖世英雄酱581361 小时前
Read timed out问题 排查
java·数据库·后端
BXCQ_xuan2 小时前
软件工程实践二:Spring Boot 知识回顾
java·spring boot·后端
o0o_-_2 小时前
【go/gopls/mcp】官方gopls内置mcp server使用
开发语言·后端·golang
苏三说技术2 小时前
为什么不建议在 Docker 中跑 MySQL?
后端
二饭2 小时前
Spring Boot 项目启动报错:MongoSocketOpenException 连接被拒绝排查日记
java·spring boot·后端
荣达3 小时前
koa洋葱模型理解
前端·后端·node.js
AAA修煤气灶刘哥4 小时前
Kafka 入门不踩坑!从概念到搭环境,后端 er 看完就能用
大数据·后端·kafka
月小水长4 小时前
大模型接入自定义 MCP Server,我开发了个免费使用的基金涨跌归纳和归因分析的 Agent
人工智能·后端