MyBatis 教程

MyBatis 配置 typeAliases 标签

在正式介绍 <typeAliases> 标签之前,我们先看一个示例,该实例将 com.hxstrive.mybatis.dynamic_sql.demo1.UserBean 映射成 RESULT_MAP 名称,然后在 <select> 元素中使用,如下:

<!-- 映射结果 -->
<resultMap id="RESULT_MAP" type="com.hxstrive.mybatis.dynamic_sql.demo1.UserBean">
   <id column="user_id" jdbcType="INTEGER" property="userId" />
   <result column="name" jdbcType="VARCHAR" property="name" />
   <result column="sex" jdbcType="VARCHAR" property="sex" />
   <result column="age" jdbcType="INTEGER" property="age" />
</resultMap>

上面可以看到,type 指定了 JavaBean 完全限定名,这个名称很长,每次都要完整的输入,很是麻烦。因此就出现了 <typeAliases> 标签,该标签用来将给定的实体定义别名,如:将 com.hxstrive.mybatis.dynamic_sql.demo1.UserBean 别名定义为定义为 UserBean。那么映射时就可以使用别名了,如下:

<!-- 映射结果 -->
<resultMap id="RESULT_MAP" type="UserBean">
   <id column="user_id" jdbcType="INTEGER" property="userId" />
   <result column="name" jdbcType="VARCHAR" property="name" />
   <result column="sex" jdbcType="VARCHAR" property="sex" />
   <result column="age" jdbcType="INTEGER" property="age" />
</resultMap>

<typeAliases> 标签的 DTD 定义如下:

<!ELEMENT typeAliases (typeAlias*,package*)>
<!ELEMENT typeAlias EMPTY>
<!ATTLIST typeAlias
type CDATA #REQUIRED
alias CDATA #IMPLIED
>
<!ELEMENT package EMPTY>
<!ATTLIST package
name CDATA #REQUIRED
>

其中,<typeAliases> 标签允许有一个或多个 <typeAlias> 或 <package> 标签。

<typeAlias> 标签用来为一个 JavaBean 指定别名,type 属性指定 JavaBean 类型,alias 属性指定别名名称。如下:

<typeAliases>
    <typeAlias alias="UserBean" type="com.hxstrive.mybatis.dynamic_sql.demo1.UserBean" />
</typeAliases>

如果你觉得每个 JavaBean 都需要使用 <typeAlias> 标签进行声明麻烦,可以使用 <package> 标签,该标签将指定一个包名称,然后 MyBatis 自动将该包下面的所有 JavaBean 进行别名声明,其中别名为类名。例如:

<typeAliases>
    <package name="com.hxstrive.mybatis.dynamic_sql.demo1" />
</typeAliases>

示例

类型别名是为 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”所使用的地方。对于普通的 Java 类型,有许多内建的类型别名。它们都是大小写不敏感的,由于重载的名字,要注意原生类型的特殊处理。

别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
objectObject
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
iteratorIterator

 

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号