mybatis的typeAliases别名

举报
tea_year 发表于 2021/12/23 00:41:22 2021/12/23
【摘要】 一、前言 typeAliases是MyBatis中的别名处理器类,翻译过来就是别名的意思。别名处理器的作用就是把Java类型,给它起一个简单一点的别名,这样我们在XML文件中引入全类名的地方就可以使用别名替代。这样可以减少很多的工作量,节约开发时间。例如下面我们使用的是全类名: <select id="findByName" ...

一、前言

typeAliases是MyBatis中的别名处理器类,翻译过来就是别名的意思。别名处理器的作用就是把Java类型,给它起一个简单一点的别名,这样我们在XML文件中引入全类名的地方就可以使用别名替代。这样可以减少很多的工作量,节约开发时间。例如下面我们使用的是全类名:


  
  1. <select id="findByName" parameterType="string" resultType="com.aaa.entity.User">
  2. select * from user where name like #{name}
  3. </select>

二、案例

修改mybatis-config.xml核心配置文件


  
  1. <typeAliases>
  2. <!--typeAlias:某个java类型的全限定名;type:类名;alias:别名;如果类比较多,需要写很多个?怎么办?-->
  3. <typeAlias type="com.aaa.entity.User" alias="user"></typeAlias>
  4. </typeAliases>

上面的案例我们可以看到在typeAliases标签下面,可以为User类起一个别名,那么如果有很多的Java类呢,那不是下面有很多很多的<typeAlias></typeAlias>,我们是否能通过一种其他的配置实现为某一个包下面所有的类都起别名,而不用为单独的某一个类。答案是肯定的。

MyBatis为我们提供了一个package标签,可以通过这个标签实现上面的功能配置。下面我们来看看如何使用package标签:


  
  1. <typeAliases>
  2. <!--package,默认别名是user-->
  3. <package name="com.aaa.entity"></package>
  4. </typeAliases>

通过如上配置可以实现批量起别名

虽然我们可以使用package批量起别名,但是有一种情况会导致冲突,我们来模拟一下,新建一个User类,这个User类在com.queen.mybatis.bean.child目录下面,也就是bean的子包目录下面,如图:

这是别名冲突了。。。那我们现在又要如何解决这个问题呢?其实您能想到的,MyBatis都为我们想到了

A、使用@Alias注解为某个类型指定新的别名

B、修改User类文件

修改IUserDao.xml配置文件

通过上述测试我们可以得出结论:批量起别名的情况下,使用@Alias注解为某个类型指定新的别名,避免出现别名冲突报错 

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/104094495

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。