typeAliases元素用来定义Java类和数据库表之间的映射关系。它可以将Java类的全限定名或简单类名与数据库表的名称进行关联。当我们在MyBatis映射文件中编写SQL语句时,可以直接使用Java类的简单类名代替数据库表的名称,这样可以简化SQL语句的编写。
typeAliases元素有两个属性,分别是alias和type。它们的含义如下:
alias属性用来定义Java类的别名。可以使用简单类名或全限定名作为别名,当我们在映射文件中引用该Java类时,可以使用该别名代替Java类的名称。例如:
- <typeAliases>
- <typeAlias alias="User" type="com.example.User"/>
- </typeAliases>
复制
在上面的例子中,我们定义了一个名为User的别名,它代表了com.example.User类。当我们在映射文件中引用User类时,可以使用User别名代替User类的名称。
type属性用来指定Java类的全限定名。当我们在映射文件中引用该Java类时,需要使用该Java类的全限定名。例如:
- <typeAliases>
- <typeAlias type="com.example.User"/>
- </typeAliases>
复制
在上面的例子中,我们只指定了User类的全限定名,但没有定义别名。当我们在映射文件中引用User类时,需要使用com.example.User代替User类的名称。
类型别名可为 Java 类型设置一个缩写名字。 它仅用于 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>
当这样配置时,Blog 可以用在任何使用 domain.blog.Blog 的地方。
也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:
- <typeAliases>
- <package name="domain.blog"/>
- </typeAliases>
每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。见下面的例子:
- @Alias("author")
- public class Author {
- ...
- }
下面是一些为常见的 Java 类型内建的类型别名。它们都是不区分大小写的,注意,为了应对原始类型的命名重复,采取了特殊的命名风格。
| 别名 | 映射的类型 |
|---|---|
| _byte | byte |
| _char (since 3.5.10) | char |
| _character (since 3.5.10) | char |
| _long | long |
| _short | short |
| _int | int |
| _integer | int |
| _double | double |
| _float | float |
| _boolean | boolean |
| string | String |
| byte | Byte |
| char (since 3.5.10) | Character |
| character (since 3.5.10) | Character |
| long | Long |
| short | Short |
| int | Integer |
| integer | Integer |
| double | Double |
| float | Float |
| boolean | Boolean |
| date | Date |
| decimal | BigDecimal |
| bigdecimal | BigDecimal |
| biginteger | BigInteger |
| object | Object |
| date[] | Date[] |
| decimal[] | BigDecimal[] |
| bigdecimal[] | BigDecimal[] |
| biginteger[] | BigInteger[] |
| object[] | Object[] |
| map | Map |
| hashmap | HashMap |
| list | List |
| arraylist | ArrayList |
| collection | Collection |
| iterator | Iterator |