MyBatis 中 sqlmapconfig核心标签typeAliases配置说明

2024-06-14 20:58

本文主要是介绍MyBatis 中 sqlmapconfig核心标签typeAliases配置说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MyBatis 中 sqlmapconfig核心标签typeAliases配置说明

        • 标签说明
        • 标签示例
        • 别名拓展
        • 常见类型别名汇总

此文章自己前在博客园写过,这里在做一下记录
博客园地址: https://www.cnblogs.com/zhangdongblog/p/10239628.html

标签说明

在 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)。常见的类型对应别名如下:

别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
mapMap

这篇关于MyBatis 中 sqlmapconfig核心标签typeAliases配置说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1061489

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu