标签说明

在 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

最新文章

  1. go:defer
  2. 单片机温度控制系统DS18B20
  3. 论文第4章:iOS绘图平台的实现
  4. .net C# 对虚拟目录IIS的操作
  5. 用SugarORM快速开发需要同步和保存大量数据的Android互联网客户端
  6. Java学习笔记(五)——google java编程风格指南(中)
  7. zabbix安装,关闭SELinux
  8. DeviceOne开发HelloWord
  9. testNG中@Factory详解
  10. Git CMD - merge: Join two or more development histories together
  11. 从数据库读取数据后显示成html标签
  12. VS2015 企业版不支持 JavaScript 语法高亮、智能提醒
  13. Django搭建博客网站(一)
  14. Hive:子查询
  15. nginx简单的命令
  16. Mac获取公网ip
  17. 排座椅(洛谷P1056)
  18. KMS服务器软件-windows/OpenWRT-X64版
  19. C语言版本:单链表的实现
  20. struts2:在Action中使用Servlet的API,设置、读取各种内置对象的属性

热门文章

  1. numpy常用功能总结、python格式化输入输出
  2. 【智能算法】变邻域搜索算法(Variable Neighborhood Search,VNS)超详细解析和TSP代码实例以及01背包代码实例
  3. win7关闭关机时的自动终止的功能
  4. WPF 仿IPhone滑块开关 样式 - CheckBox
  5. php 对象的自定义遍历
  6. js中自己实现bind函数的方式
  7. php 替换 oracle 数据字段中“看不见”换行符号
  8. linux下的小命令
  9. list和tuple
  10. C++_标准模板库STL概念介绍5-其他库与总结