目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习。阐述了MVC架构模式和三层架构,明晰了在Web项目中的普遍编码层次,回顾了JDBC连接数据库,建立了使用MyBatis和MySQL的Maven项目,解释了STDOUT_LOGGING日志和手动提交事务,记录了MyBatis中#占位符的使用方法,回顾了MyBatis执行SQL语句的过程和使用到的一些重要类和接口,记录了将固定化的代码整合到一个工具类MyBatisUtil中,以减少代码量。记录了dao层接口的实现以及为什么要实现它。记录了MyBatis动态代理和使用动态代理的要求以及使用了动态代理生成的实现类。记录了MyBatis框架下传参的五种方法,占位符#和$。本篇博客记录一下如何自定义别名。
上一篇博文我记录的是$占位符的具体使用方法,感兴趣的读者可以移步查阅,链接如下所示:
这里的别名指的是:某一种数据类型的别名。这里提到的数据类型,可以是JAVA中自带的基本数据类型,也可以是自己编写的实体类。
在MyBatis的mapper.xml文件中,parameterType属性和resultType属性的值都是某一种数据类型的全限定路径名称,但是全限定路径名称太长了,所以,MyBatis允许给每一种数据类型都起一个别名,使用别名来代替它的全限定路径名称。
MyBatis已经帮我们给每一种基本数据类型起好了对应的别名,这个可以在MyBatis的官方手册中查询到。
但是,我们自定义的实体类怎么给别名呢?这就需要我们自己配置了。
如果我们需要给自定义实体类配置别名,那么就需要在MyBatis的总配置文件中配置。
下面我直接给出代码:
- configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
-
- <settings>
- <setting name="logImpl" value="STDOUT_LOGGING"/>
- settings>
- <typeAliases>
- <typeAlias type="com.dcy.domain.Student" alias="Student">typeAlias>
- <package name="com.dcy.domain"/>
- typeAliases>
- <environments default="development">
- <environment id="development">
- <transactionManager type="JDBC">transactionManager>
-
- <dataSource type="POOLED">
- <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
- <property name="url" value="jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong&allowMultiQueries=true"/>
- <property name="username" value="root"/>
- <property name="password" value="123456"/>
- dataSource>
- environment>
- environments>
-
- <mappers>
- <mapper resource="com/dcy/dao/StudentDao.xml">mapper>
- mappers>
- configuration>
注意看我代码中的注释。
这里说一个需要注意的点:与自定义配置别名有关的typeAliases标签必须写在settings标签之后。MyBatis的总配置文件中标签之间是有顺序的,这个顺序我们可以看到。方法是:Windows操作系统下,按着Ctrl键,左键点击configuration标签,进入到如下页面:
上面就是标签之间的先后顺序。
配置别名有两种语法格式:1、使用
最后,我们就可以使用别名,例如下面的使用方法:
- <select id="queryStudentOrderByColume" resultType="Student">
- select * from student order by ${colume}
- select>