类型别名就是为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 |