此模块主要是实现MyBaties数据类型和jdbc中的数据类型的转换php
1、TypeHandler接口做为参数转换的基础接口:apache
一、设定参数函数:mybatis
void setParameter(PreparedStatement ps, int i, T parameter, JdbcType jdbcType) throws SQLException;框架
二、经过ResultSet 解析类型 函数
T getResult(ResultSet rs, String columnName) throws SQLException;优化
T getResult(ResultSet rs, int columnIndex) throws SQLException;code
三、经过CallableStatement解析类型继承
T getResult(CallableStatement cs, int columnIndex) throws SQLException;接口
2、BaseTypeHandler 是转换的基类,实现了TypeHandler<T>,增长setNonNullParameter()的模板函数和getNullableResult(ResultSet rs,String columnName)等模板函数,给子类具体实现。get
3、异常类TypeException,继承org.apache.ibatis.exceptions.PersistenceException。
4、JdbcType 是个枚举类,针对jdbc的Types作转换,稍微包装一层,内部初始化了一个存储名为codeLookup 的key存储 TYPE_CODE,value存储JdbcType的内部静态变量map.
5、jdbc各类数据类型转换的具体子类。如SqlDateTypeHandler
SqlDateTypeHandler 继承上面提到的基类BaseTypeHandler,实现父类的模板函数
setNonNullParameter,getNullableResult(ResultSet rs, String columnName),
getNullableResult(ResultSet rs, int columnIndex),
getNullableResult(CallableStatement cs, int columnIndex);
以上就是mybatis的type模块对jdbc标准的一个封装和优化。
还有一些封装,提供别名注解:Alias
对注解的知识理解能够参考连接http://www.cnphp6.com/archives/61315
建议详细了解jdbc的知识。框架就是对基础知识的更高程度的封装