mybatis 3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 3相关的知识,希望对你有一定的参考价值。

为实体类定义别名,简化sql映射xml文件中的引用

 

我们在sql映射xml文件中的引用实体类时,需要写上实体类的全类名(包名+类名),如下:

<!-- 创建用户(Create) -->
<insert id="addUser" parameterType="me.gacl.domain.User">
    insert into users(name,age) values(#{name},#{age})
</insert>

 

parameterType="me.gacl.domain.User"这里写的实体类User的全类名me.gacl.domain.User,每次都写这么一长串内容挺麻烦的,而我们希望能够简写成下面的形式

<insert id="addUser2" parameterType="_User">
    insert into users(name,age) values(#{name},#{age})
</insert>

 

<typeAliases>
    <typeAlias type="me.gacl.domain.User" alias="_User"/>
</typeAliases>

这样就可以为me.gacl.domain.User类定义了一个别名为_User,以后_User就代表了me.gacl.domain.User类,这样sql映射xml文件中的凡是需要引用me.gacl.domain.User类的地方都可以使用_User来代替,这就达到了一个简化实体类引用的目的。

 

除了可以使用<typeAlias type="me.gacl.domain.User" alias="_User"/>这种方式单独为某一个实体类设置别名之外,我们还可以使用如下的方式批量为某个包下的所有实体类设置别名,如下:

 

!-- 配置实体类的别名,配置实体类别名的目的是为了在引用实体类时可以使用实体类的别名来代替实体类,达到简写的目的 -->
    <typeAliases>
        <!-- 为实体类me.gacl.domain.User配置一个别名_User -->
        <!-- <typeAlias type="me.gacl.domain.User" alias="_User"/> -->
        <!-- 为me.gacl.domain包下的所有实体类配置别名,MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名
        比如me.gacl.domain.User这个实体类的别名就会被设置成User
         -->
        <package name="me.gacl.domain"/>
    </typeAliases>

<package name="me.gacl.domain"/>就表示为这个包下面的所有实体类设置别名。MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名,比如me.gacl.domain.User这个实体类的别名就会被设置成User。

以上是关于mybatis 3的主要内容,如果未能解决你的问题,请参考以下文章

markdown [mybatis参考]关于mybatis #mybatis的一些片段

Mybatis超强大的动态SQL大全

mybatis学习(39):动态sql片段

Mybatis最全的高质量面试题和答案—3

SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper

MyBatis动态SQL标签用法