Mybatis配置之别名配置元素详述
这里我们贴出之前的UserDao对应的mapper文件,如下所示
从这个配置文件中,我们可以看到<select>、<insert>和<update>三个标签元素的resultType都是User对象,需要设置这个User对象的类全限定名,即packname.classname。
我们发现一个问题,那就是这个类名,我们需要写多次,如果要改这个类名的话,我们需要在多个地方进行修改。很明显,这样配置的话很容易造成修改上的遗漏,同时也书写上也比较麻烦。因此,MyBatis为我们提供了一个简单方便的配置方法,那就是使用<typeAliases>标签元素,给实体类设置一个别名。
如上所示,我们在原来的mybatis配置文件中增加了<typeAliases>标签,并将com.majing.learning.mybatis.entity.User这个实体类重命名为User,然后我们在mapper配置文件中就可以如下使用了。
这样即使实体类名修改了,所需要修改的地方也只有一处,便于集中管理。
也许你会有疑问,如果实体类比较多怎么办?还不是要配置很多实体类和别名,NO,NO,NO!下面跟大家说说另一种配置方法。
在这里,我们不再使用<typeAliases>标签下<typeAliase>,而是使用<package>标签,表示扫描该包名下的所有类(除了接口和匿名内部类),如果类名上有注解,则使用注解指定的名称作为别名,如果没有则使用类名首字母小写作为别名,如com.majing.learning.mybatis.entity.User这个类如果没有设置@Alias注解,则此时会被关联到user这个别名上。
因此,按照上面的配置,我们还需要将实体类做一下调整,如下两种方式所示:
(1)给实体类添加@Alias注解
(2)实体类不加注解的情况下,修改mapper文件中引用的类型别名,改为小写,如下所示
最后想说,mybatis为我们已经实现了很多别名,已经为许多常见的 Java 类型内建了相应的类型别名。它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。
至此,关于别名的全部使用方法这里便介绍完成了
Mybatis配置之别名配置元素详述的更多相关文章
- 三 MyBatis配置文件SqlMapCofing.xml(属性加载&类型别名配置&映射文件加载)
SqlMapCofing:dtd,属性加载有固定的顺序Content Model properties:加载属性文件 typeAliases:别名配置 1 定义单个别名:不区分大小写 核心配置: 映射 ...
- MyBatis - 2.全局文件配置
1.properties 属性 <!--properties 引入外部配置文件 properties 的内容 resource: 引入类路径资源 url: 引入网络资源 --> <p ...
- MyBatis—mapper.xml映射配置
SQL文件映射(mapper文件),几个顶级元素的配置: mapper元素:根节点只有一个属性namespace(命名空间)作用: 1:用于区分不同的mapper,全局唯一. 2:绑定DAO接口,即面 ...
- [转载]Mybatis Generator最完整配置详解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...
- MyBatis学习02(配置解析)
配置解析 核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 能配置的内容如下: configur ...
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013548.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置 ...
- MyBatis入门学习教程-优化MyBatis配置文件中的配置
一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置
一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...
- 优化MyBatis配置文件中的配置
一.为实体类定义别名,简化sql映射xml文件中的引用 之前,我们在sql映射xml文件中的引用实体类时,需要写上实体类的全类名(包名+类名),如下: <!-- 创建用户(Create) --& ...
随机推荐
- 在imageView依次加入7个手势, 1.点击哪个button,往imageView上加入哪个手势.(保证视图上仅仅有一个手势). 2.轻拍:点击视图切换美女图片.(imageView上首先展示的美女
// // ControlView.h // HomeworkGestureRecognizer // // Created by lanouhn on 14-8-27. // Copyright ( ...
- hadoop常见操作命令
1.查看指定文件夹下内容 hadoop dfs –ls [文件文件夹] eg: hadoop dfs –ls /user/wangkai.pt 2.打开某个已存在文件 hadoop dfs –cat ...
- 欧几里得 & 拓展欧几里得算法 解说 (Euclid & Extend- Euclid Algorithm)
欧几里得& 拓展欧几里得(Euclid & Extend-Euclid) 欧几里得算法(Euclid) 背景: 欧几里德算法又称辗转相除法.用于计算两个正整数a.b的最大公约数. -- ...
- [SDOI2007]游戏
https://zybuluo.com/ysner/note/1184420 题面 题意简单,但不太好概括. 戳我 解析 不成熟想法 据题意可知,字符串字符的顺序无影响. 并且判断两个字符串能否接龙可 ...
- PCB MS SQL表值函数与CLR 表值函数 (例:字符串分割转表)
将字符串分割为表表经常用到,这里 SQL表值函数与CLR 表值函数,两种实现方法例出来如下: SELECT * FROM FP_EMSDB_PUB.dbo.SqlSplit('/','1oz/1.5 ...
- c#,Java aes加密
1.c#版本 /// <summary> /// Aes加密解密.c#版 /// </summary> public class BjfxEncryptHelper { /// ...
- F - Micro-World(简单模拟)
Problem description You have a Petri dish with bacteria and you are preparing to dive into the harsh ...
- .Net Core学习(一)
1.安装.Net Core https://www.microsoft.com/net/core#windows 2.创建一个.Net Core项目,win+R调出控制台,输入下面命令 mkdir a ...
- 使用IDEA 搭建一个SpringBoot + Hibernate + Gradle
---恢复内容开始--- 打开IDEA创建一个新项目: 第一步: 第二步: 第三步: 最后一步: 如果下载的时候时间太久.可以找到build.gradle文件,添加以下代码.如下图 maven{ ur ...
- 1.java安全框架SHIRO
1. shiro介绍 Apache Shiro是一个强大且易用的java安全框架,执行身份验证.授权.密码和会话管理. 使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移 ...