TypeHandler类型转化器
在 JDBC 中,需求在 PreparedStatement 目标中设置那些现已预编译过的 SQL 句子的参数。履行 SQL 后,会经过 ResultSet 目标获取得到数据库的数据,而这些 MyBatis 是依据数据的类型经过 typeHandler 来完成的。
在 typeHandler 中,分为 jdbcType 和 javaType,其间 jdbcType 用于界说数据库类型,而 javaType 用于界说 Java 类型,那么 typeHandler 的效果便是承当 jdbcType 和 javaType 之间的彼此转化。
如下图所示。在许多情况下咱们并不需求去装备 typeHandler、jdbcType、javaType,由于 MyBatis 会勘探应该运用什么类型的 typeHandler 进行处理,可是有些场景无法勘探到。
关于那些需求运用自界说枚举的场景,或许数据库运用特别数据类型的场景,能够运用自界说的 typeHandler 去处理类型之间的转化问题。A8站源码交易平台
和别名
相同,在 MyBatis 中存在体系界说 typeHandler 和自界说 typeHandler。MyBatis 会依据 javaType 和数据库的 jdbcType 来决议选用哪个 typeHandler 处理这些转化规则。体系供给的 typeHandler 能掩盖大部分场景的要求,可是有些情况下是不行的,比方咱们有特别的转化规则,枚举类便是这样。
A8站源码交易平台