Mybatis 别名的使用

有些话、适合烂在心里 提交于 2020-02-15 03:39:54

类型别名是为 Java 类型设置一个短的名字
两种方式: 使用<typeAliases>下的两种标签
存在的意义仅在于用来减少类完全限定名的冗余,它只和 XML 配置有关,就是说两种方式都是在mybatis-config.xml里面配置,且位置得在<proerties>后面 而不是<configuration>后面(各个标签节点的排序是有规则的,typeAliases默认是排第三

文件位置如图:
在这里插入图片描述

方式一:使用<typeAlias> ,当这样配置时,user 可以用在任何使用 com.xp.pojo.User的地方。例子如下

<typeAliases>
        <typeAlias type="com.xp.pojo.User" alias="user"></typeAlias>
</typeAliases>

type:要取别名的那个类 的全限定类名
alias:要取的别名

方式二:
使用<package>,指定一个包名,Mybatis会在包名下搜索需要的Java Bean
扫描实体类的包,在没有注解的情况下,它的默认别名就为这个类的类名(一般默认都是小写,比如你类名是User ,默认的就是user,但是直接写User也是可以识别的),如果有注解,那别名就是注解的值

<typeAliases>
        <package name="com.xp.pojo"/>
</typeAliases>

package:为某个包下的所有类批量起别名
name:指定包名
没有注解:(resultType的值

<select id="getUserList" resultType="user">
       /*定义sql*/
       select * from user
</select>

有注解:(注解值hello

@Alias("hello")
public class User {

使用@Alias为某个类注解,别名就是注解的值helllo,例子如下

 <select id="getUserList" resultType="hello">
       /*定义sql*/
       select * from user
</select>

在实体类比较少的时候,推荐第一种方式
实体类很多,推荐第二种

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!