此模塊主要是實現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的知識。框架就是對基礎知識的更高程度的封裝