mybaties源碼解析(org.apache.ibatis.type)類型處理器

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

相關文章
相關標籤/搜索