Mybatis实践(一)类型转换器

简介: Mybatis 类型映射?Mybatis 作为一个 ORM 框架,其中最重要的是能够将数据表映射到类,即操作类就相当于操作表。那么 Mybatis 是如何将类与数据表对应起来的?类名 <-> 表名类属性名 <-> 表字段名类属性类型 <-> 表字段类型前两点名字的对应比较好理解和配置使用。

Mybatis 类型映射?

Mybatis 作为一个 ORM 框架,其中最重要的是能够将数据表映射到类,即操作类就相当于操作表。那么 Mybatis 是如何将类与数据表对应起来的?

  • 类名 <-> 表名
  • 类属性名 <-> 表字段名
  • 类属性类型 <-> 表字段类型

前两点名字的对应比较好理解和配置使用。这篇文章主要讲的是第三点的实践:类型的映射关系设置。

Mybatis 支持的常用的基本类型转换

javaType 数据库类型 jdbcType
java.lang.String varchar, char, text, ... VARCHAR, CHAR, LONGVARCHAR
java.lang.Long bigint BIGINT
java.math.BigDecimal numeric, decimal NUMERIC, DECIMAL
java.lang.Boolean boolean, bit BOOLEAN, BIT
java.lang.Short short SHORT
java.lang.Integer int INTEGER
java.lang.Float float, real REAL
java.lang.Double double DOUBLE
java.lang.Byte byte BYTE
java.lang.Byte[] binary, varbinary, longvarbinary BINARY, VARBINARY, LONGVARBINARY
java.sql.Date date DATE
java.sql.Time time TIME
java.sql.Timestamp timestamp TIMESTAMP

未列出的部分可参考类 org.apache.ibatis.type.JdbcType。
其他类型需要自定义类型转换器配置实现映射关系。

自定义类型转换器

首先需要创建类 XXXHandler,实现 TypeHandler<你需要转换的类> 接口的几个方法。
之后,需要告诉 Mybatis 自定义的映射关系,以下以一个枚举类以例:

全局配置法:

<configuration>
    <typeHandlers>
        <typeHandler handler="com.github.leannor.mybatis.handler.AccessHandler"
                     jdbcType="TINYINT" javaType="com.github.leannor.mos.enums.AccessEnum"/>
    </typeHandlers>
</configuration>
public class AccessEnumHandler implements TypeHandler<AccessEnum> { ... }

全局注释法:

<configuration>
    <typeHandlers>
        <typeHandler handler="com.github.leannor.mybatis.handler.AccessHandler"/>
    </typeHandlers>
</configuration>
@MappedJdbcTypes({JdbcType.TINYINT})
@MappedTypes(AccessEnum.class)
public class AccessEnumHandler implements TypeHandler<AccessEnum> { ... }

局部配置法(未完待更)

目录
相关文章
|
6月前
|
SQL Java 数据库连接
MyBatis 框架入门理论与实践
MyBatis 框架入门理论与实践
72 6
|
6月前
|
SQL Java 数据库连接
Mybatis源码分析系列之第三篇:Mybatis的操作类型对象
Mybatis源码分析系列之第三篇:Mybatis的操作类型对象
|
6月前
|
SQL Java 数据库连接
MyBatis Plus应用实践总结
MyBatis Plus应用实践总结
73 0
|
6月前
|
XML Java 数据库连接
MyBatis使用实践总结
MyBatis使用实践总结
72 0
|
6月前
|
SQL Java 数据库连接
Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式
【1月更文挑战第3天】 一、核心配置文件详解 二、默认的类型别名 三、MyBatis的增删改查 四、MyBatis获取参数值的两种方式 1、单个字面量类型的参数 2、多个字面量类型的参数 3、map集合类型的参数 4、实体类类型的参数 5、使用@Param标识参数
99 2
Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式
|
26天前
|
SQL Java 数据库连接
mybatis使用四:dao接口参数与mapper 接口中SQL的对应和对应方式的总结,MyBatis的parameterType传入参数类型
这篇文章是关于MyBatis中DAO接口参数与Mapper接口中SQL的对应关系,以及如何使用parameterType传入参数类型的详细总结。
30 10
|
1月前
|
SQL Java 数据库连接
Mybatis中传入不同类型的值处理方案
这篇文章讲述了在Mybatis中如何处理传入不同类型参数的情况,包括单个值、列表及Map等,并提供了相应的XML映射和Java代码示例。
68 0
|
5月前
|
Java 数据库连接 数据库
MyBatis TypeHandler详解:原理与自定义实践
MyBatis TypeHandler详解:原理与自定义实践
|
6月前
|
存储 Java 数据库连接
MyBatis的类型处理器TypeHandler与自定义实现
MyBatis的类型处理器TypeHandler与自定义实现
493 0
|
6月前
|
存储 XML Java
mybatis使用内部类处理一对多类型数据2
mybatis使用内部类处理一对多类型数据2
63 0