TypeHandler
负责JAVA类型与JDBC类型之间的转换,TypeHandler接口的方法分两类:
void setParameter():负责将JAVA类型转换为JDBC类型T getResult():负责将数据从JDBC类型转换为JAVA类型
BaseTypeHandler为Mybatis提供的抽象类,主要实现交给其子类实现。 TypeHandler用于完成单个参数以及单个列值的类型转换。
TypeHandlerRegister
private final Map
<JdbcType
, TypeHandler
<?>> JDBC_TYPE_HANDLER_MAP
= new EnumMap<JdbcType
, TypeHandler
<?>>(JdbcType
.class);
private final Map
<Type
, Map
<JdbcType
, TypeHandler
<?>>> TYPE_HANDLER_MAP
= new ConcurrentHashMap<Type
, Map
<JdbcType
, TypeHandler
<?>>>();
private final Map
<Class
<?>, TypeHandler
<?>> ALL_TYPE_HANDLERS_MAP
= new HashMap<Class
<?>, TypeHandler
<?>>();
private static final Map
<JdbcType
, TypeHandler
<?>> NULL_TYPE_HANDLER_MAP
= Collections
.emptyMap();
通过多个重载的register()方法像上述集合中注册typeHandler对象; 通过多个重载的getTypeHandler()从上述四个集合中获取对应的TypeHandler对象;
TYpeAliasRegister
提供类的别名注册和管理功能,使用TYPE_ALIEASES字段(Map<String,Class<?>>类型)管理别名与java类型之间的关系,使用registerAlias()完成注册