类型别名就是为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类型内建的相应的类型别名。它们都是不区分大小写的,注意对基本类型名称重复采取的特殊命名风格。这个一般用于parameterType、resultType、javaType、ofType属性。
| 别名 | 映射的 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 |