MyBatis typeAliases 类型别名
说明:本文修订于2022年6月9日
1、MyBatis typeAliases 类型别名的作用
typeAliases,顾名思义,就是类别名的意思。类别名是Java类更短的名称,其存在的意义在于减少不必要的全限定类名。
备注:全限定类名就是类名全称,带包路径的用点隔开,例如: java.lang.String。非限定类名也叫短名,就是我们平时说的类名,不带包的,例如:String。
2、MyBatis typeAliases 类型别名的使用介绍
2.1、为Java类型设置一个别名(短的名字)
类型别名是为Java类型设置的一个短的名字。它只和XML配置有关,存在的意义仅在于用来减少类完全限定名的冗余,如下所示:
<typeAliases>
<typeAlias alias="user" type="cn.mybatis.domain.User"/>
</typeAliases>当这样配置时,user可以用在任何使用cn.mybatis.domain.User的地方。但是,我们发现,如果类很多,每个类都这样配置一项显然很繁琐,所以下面给出了另外一个解决方案。
2.2、指定特定包里面的类的别名
<typeAliases>
<package name="cn.mybatis.domain"/>
</typeAliases>每一个在包cn.mybatis.domain中的Java Bean,在没有注解的情况下,会使用Bean的首字母小写的非限定类名来作为它的别名。比如cn.mybatis.domain.User的别名为user。若有注解,则别名为其注解值。
@Alias ("myuser")
public class User {
...
}我们可以指定一个包,让mybatis去扫描它,以cn.mybatis.domain这个包举例,mybatis扫描它时做了以下事情:这个包下的所有bean如果没有@Alias注解,mybatis会自动以这个类的首字母小写作为名称为它注册,也就是说cn.mybatis.domain.User以user注册,如果类上面有@Alias注解,就以这个注解的值myuser作为bean的名称。
2.3、MyBatis 内置别名
MyBatis已经为许多常见的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 |