MyBatis 中 sqlmapconfig核心标签typeAliases配置说明
标签说明
在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType、resultType 来设置 sql 语句的输入输出参数,一般参数都是基本的数据类型或封装类型,但都需要声明该类型的全路径,java.lang.String,或者 cn.com.mybatis.pojo.Student, 这时就可以通过 typeAliases 别名来设置,简化复杂度
标签示例
例如之前介绍的模糊查询示例,当不使用别名,而使用全路径时,配置示例代码如下:
<select id="findStudentByName" parameterType="java.lang.String" resultType="cn.com.mybatis.pojo.Student">
SELECT * FROM STUDENT WHERE name LIKE '%${value}%'
</select>
当通过设置 MyBatis 的全局配置文件 sqlmapconfig中的 typeAliases 属性后,就可以为 sql 映射文件中的输入 / 输出参数设置类型别名,然后在 sql 映射配置文件中指定输入输出参数类型时使用的别名。首先,sqlmapconfig配置文件示例如下:
<typeAliases>
<typeAlias alias="student" type="cn.com.mybatis.pojo.Sdudent"/>
<typeAlias alias="str" type="java.lang.String"/>
</typeAliases>
这样就可以在 sql 映射配置文件中使用别名来指定输入 / 输出参数的类型了,其示例代码如下:
<select id="findStudentByName" parameterType="str" resultType="student">
SELECT * FROM STUDENT WHERE username LIKE '%${value}%'
</select>
别名拓展
像刚才的 JavaBean,Student是放在 cn.com.mybatis.pojo 包里的,包里可能也会存在其他多个 JavaBean,这时候一个一个配置别名就会很麻烦,这时候就需要批量定义别名,批量指定很简单,只要指定包名即可,之后程序会为包下的所有类都自动加上别名,其定义别名的规范就是对应包装类的类名首字母变为小写,其示例代码如下:
<typeAliases>
<package name="cn.com.mybatis.pojo"/>
</typeAliases>
这时设置的包名下的类就都有了别名,别名就是类名(首字母小写),像刚才的 Student类,其别名就为 student。
在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名
若有注解,则别名为其注解值
除了在配置文件中单独的配置别名和批量的配置别名两种方式外,还有一种方式,就是通过注解的方式来配置别名,方法也很简单,在需要配置别名的类前通过 @Alias 注解即可,参数就是别名名称,例如以下示例代码:@Alias("student")
public class Student{
//其他代码
}
常见类型别名汇总
MyBatis 已经为 Java 常见类型默认指定了别名,可以直接使用。因为有一些基本数据类型和包装类型的名称一样(例如基本数据类型 byte 和包装类型 java.lang.Byte),所以在基本的数据类型前面加了下划线 “_” 来以此区分(byte 别名就是_byte,java.lang.Byte 别名就是 byte)。常见的类型对应别名如下:
别名 | 映射的类型 |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
map | Map |
最新文章
- go:defer
- 单片机温度控制系统DS18B20
- 论文第4章:iOS绘图平台的实现
- .net C# 对虚拟目录IIS的操作
- 用SugarORM快速开发需要同步和保存大量数据的Android互联网客户端
- Java学习笔记(五)——google java编程风格指南(中)
- zabbix安装,关闭SELinux
- DeviceOne开发HelloWord
- testNG中@Factory详解
- Git CMD - merge: Join two or more development histories together
- 从数据库读取数据后显示成html标签
- VS2015 企业版不支持 JavaScript 语法高亮、智能提醒
- Django搭建博客网站(一)
- Hive:子查询
- nginx简单的命令
- Mac获取公网ip
- 排座椅(洛谷P1056)
- KMS服务器软件-windows/OpenWRT-X64版
- C语言版本:单链表的实现
- struts2:在Action中使用Servlet的API,设置、读取各种内置对象的属性
热门文章
- numpy常用功能总结、python格式化输入输出
- 【智能算法】变邻域搜索算法(Variable Neighborhood Search,VNS)超详细解析和TSP代码实例以及01背包代码实例
- win7关闭关机时的自动终止的功能
- WPF 仿IPhone滑块开关 样式 - CheckBox
- php 对象的自定义遍历
- js中自己实现bind函数的方式
- php 替换 oracle 数据字段中“看不见”换行符号
- linux下的小命令
- list和tuple
- C++_标准模板库STL概念介绍5-其他库与总结