类型别名就是为Java
类型设置一个短的名字。 它只和XML
配置有关,存在的意义仅在于用来减少类完全限定名的冗余。也就是说在SQL
映射文件中涉及到写返回Java
类型的地方,只需要写Java
类的别名即可,不需要写Java
类的完全限定名称了。
1. 别名配置
1.1. 普通 Spring 项目配置
在mybatis-config.xml
中进行别名配置。
1.1.1. 指定实体类
<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
指定的是别名,如果没写该属性,则默认为类名首字母小写。
1.1.2. 指定包名
只指定一个包名,这样MyBatis
就会在该包名下面搜索需要的Java Bean
。
<typeAliases>
<package name="domain.blog"/>
</typeAliases>
当这样配置时,每一个在包domain.blog
下的Java Bean
,在没有使用@Alias
注解的情况下,会默认使用类名首字母小写来作为它的别名。 比如domain.blog.Author
的别名为author
;若有注解,则别名为其注解值。比如下面的注解表示domain.blog.Author
的别名为myAuthor
。
@Alias("myAuthor")
public class Author {
...
}
1.2. SpringBoot 项目配置
在application.properties
或者application.yml
文件中进行配置。
mybatis.type-aliases-package=cn.udesk.kun.model
MyBatis
扫描指定包下的Java Bean
,可以和注解@Alias
一起使用。
2. 常见类型别名
这是一些为常见的Java
类型内建的相应的类型别名。它们都是不区分大小写的,注意对基本类型名称重复采取的特殊命名风格。这个一般用于parameterType
、resultType
、javaType
、ofType
属性。
别名 | 映射的 Java 类型 |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |