详解MyBatis配置typeAliases的方法

 更新时间:2020年10月19日 10:39:42   作者:aFa攻防实验室  
这篇文章主要介绍了详解MyBatis配置typeAliases的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

0x00:前言参考

之前的《MyBatis 中 SqlMapConfig 配置文件详解》记了一下 MyBatis 中的核心配置文件各个标签的作用和使用场景,这篇文章细说一下配置文件中 typeAliases 标签的详细使用。

0x01:标签介绍

在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType、resultType 来设置 sql 语句的输入输出参数,一般参数都是基本的数据类型或封装类型,但都需要声明该类型的全路径,java.lang.String,或者 cn.com.mybatis.pojo.User, 这时就可以通过 typeAliases 别名来设置,简化复杂度

0x02:代码示例

例如之前介绍的模糊查询示例,当不使用别名,而使用全路径时,配置示例代码如下:

<select id="findUserByUsername" parameterType="java.lang.String" resultType="cn.com.mybatis.pojo.User">
  SELECT * FROM USER WHERE username LIKE '%${value}%'
</select>

当通过设置 MyBatis 的全局配置文件 SqlMapConfig 中的 typeAliases 属性后,就可以为 sql 映射文件中的输入 / 输出参数设置类型别名,然后在 sql 映射配置文件中指定输入输出参数类型时使用的别名。首先,SqlMapConfig 配置文件示例如下:

<typeAliases>
  <typeAlias alias="user" type="cn.com.mybatis.pojo.User"/>
  <typeAlias alias="str" type="java.lang.String"/>
</typeAliases>

这样就可以在 sql 映射配置文件中使用别名来指定输入 / 输出参数的类型了,其示例代码如下:

<select id="findUserByUsername" parameterType="str" resultType="user">
  SELECT * FROM USER WHERE username LIKE '%${value}%'
</select>

0x03:别名拓展

像刚才的 JavaBean,User 是放在 cn.com.mybatis.pojo 包里的,包里可能也会存在其他多个 JavaBean,这时候一个一个配置别名就会很麻烦,这时候就需要批量定义别名,批量指定很简单,只要指定包名即可,之后程序会为包下的所有类都自动加上别名,其定义别名的规范就是对应包装类的类名首字母变为小写,其示例代码如下:

<typeAliases>
  <package name="cn.com.mybatis.pojo"/>
</typeAliases>

这时设置的包名下的类就都有了别名,别名就是类名(首字母小写),像刚才的 User 类,其别名就为 user。
 除了在配置文件中单独的配置别名和批量的配置别名两种方式外,还有一种方式,就是通过注解的方式来配置别名,方法也很简单,在需要配置别名的类前通过 @Alias 注解即可,参数就是别名名称,例如以下示例代码:

@Alias("user")
public class User{
  //其他代码
}

0x04:常见类型别名汇总

MyBatis 已经为 Java 常见类型默认指定了别名,可以直接使用。因为有一些基本数据类型和包装类型的名称一样(例如基本数据类型 byte 和包装类型 java.lang.Byte),所以在基本的数据类型前面加了下划线 “_” 来以此区分(byte 别名就是_byte,java.lang.Byte 别名就是 byte)。常见的类型对应别名如下:

0x05:总结

在开发中,经常使用别名,可以提高开发效率,简化配置。

到此这篇关于详解MyBatis配置typeAliases的方法的文章就介绍到这了,更多相关MyBatis配置typeAliases内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Resource路径整理总结

    Java Resource路径整理总结

    这篇文章主要介绍了 Java Resource路径整理总结的相关资料,需要的朋友可以参考下
    2017-03-03
  • 实例讲解分布式缓存软件Memcached的Java客户端使用

    实例讲解分布式缓存软件Memcached的Java客户端使用

    这篇文章主要介绍了分布式缓存软件Memcached的Java客户端使用,Memcached在GitHub上开源,作者用其Windows平台下的版本进行演示,需要的朋友可以参考下
    2016-01-01
  • MybatisPlusInterceptor依赖变红如何解决,无法识别问题

    MybatisPlusInterceptor依赖变红如何解决,无法识别问题

    这篇文章主要介绍了MybatisPlusInterceptor依赖变红如何解决,无法识别问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • SpringBoot如何集成Netty

    SpringBoot如何集成Netty

    这篇文章主要介绍了SpringBoot如何集成Netty问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 解决spring boot创建项目遇到配置的问题

    解决spring boot创建项目遇到配置的问题

    这篇文章主要介绍了解决spring boot创建项目遇到配置的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java操作PDF文件方法之转换、合成、切分

    java操作PDF文件方法之转换、合成、切分

    最近需要做⼀个把多个pdf报告合并成⼀个以⽅便预览的需求,下面这篇文章主要给大家介绍了关于java操作PDF文件方法之转换、合成、切分的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • java集合Collection实现类解析ArrayList LinkedList及Vector

    java集合Collection实现类解析ArrayList LinkedList及Vector

    这篇文章主要为大家介绍了java集合Collection实现类解析ArrayList LinkedList及Vector,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-03-03
  • JAVA算法起步之快速排序实例

    JAVA算法起步之快速排序实例

    这篇文章主要介绍了JAVA算法起步之快速排序实例,需要的朋友可以参考下
    2014-02-02
  • Java数据结构之链表详解

    Java数据结构之链表详解

    本篇文章我们将讲解一种新型的数据结构—链表,链表是一种使用广泛的通用数据结构,它可以用来作为实现栈,队列等数据结构的基础.文中有非常详细的介绍,需要的朋友可以参考下
    2021-05-05
  • Java实现截图小工具的完整代码

    Java实现截图小工具的完整代码

    这篇文章主要介绍了Java实现截图小工具的完整代码,用Java的图形用户界面GUI技术写了一个电脑截图小工具,本程序代码简单,涉及到异常处理,事件处理,图形用户界面等,需要的朋友可以参考下
    2022-05-05

最新评论