类型转换器
在 MyBatis 框架中,类型转换器(Type Handler)是处理 Java 类型和 JDBC 类型之间转换的关键组件。它主要用于以下两个场景:
-
将Java对象设置到PreparedStatement参数:当执行SQL插入、更新或删除操作时,MyBatis需要将Java对象的属性值转换为JDBC能够识别的数据类型,并设置到PreparedStatement的相应参数位置。
-
例如,一个
String
类型的Java日期字符串需要通过DateTypeHandler
转换成数据库可以接受的java.sql.Date
格式。
-
-
从ResultSet获取数据并转换为Java对象:查询结果返回时,MyBatis从ResultSet读取数据,并根据映射配置将JDBC数据类型转换为相应的Java类型。
内置类型转换器和自定义类型转换器
自定义类型转换器实现方式:
- 实现 TypeHandler
- 继承 BaseTypeHandler
配置方式:
- 全局配置
- 局部配置
自定义类型转换器
- 实现 TypeHandler
- 继承 BaseTypeHandler
package com.wdzl.typehandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 性别类型转换
* String 男 ---- JDBC : int
* String -- int
* 男 ---- 1
* 女 ---- 2
* 实现 实现接口
*
* insert into book(name,author,price,