类型处理器
类型处理器(TypeHandler)用于在 Java 类型与数据库字段类型之间进行转换读写,例如:使用 String 读写数据库 VARCHAR 类型数据。
通过类型处理器可以有效解决数据库一些特殊类型的读写处理,如:地理信息类型、货币类型、时区时间、枚举、序列化。
类型处理器选择优先级
在没有明确指定类型处理器时,dbVisitor 将按下列优先级自动选择:
示例:通过 javaType 指定
select * from users where name = #{name, javaType=java.lang.String}
- Java 类型
java.lang.String对应StringTypeHandler(见 单一类型表)。
示例:通过 javaType + jdbcType 指定
select * from users where name = #{name, jdbcType=varchar, javaType=java.lang.String}
- JDBC 类型
VARCHAR+ Java 类型java.lang.String对应StringTypeHandler(见 组合类型表)。
信息
- 大多数类型处理器在读写数据时无需指定 JDBC 类型。
- 通常情况下参数设置和结果集读取只需指定 Java 类型即可(存储过程 OUT 参数除外)。
如果内置类型处理器无法满足需要,可以通过 自定义类型处理器 来处理特殊情况。