場景:當字段的型別和資料庫型別不一致時,需要自定義型別轉化器。
比如:
users
address
如下:
/*自定義型別轉化器
* 遇到address型別的字段是會自動來呼叫該類中的方法
* 新增 修改 :address物件 --》string
* 呼叫setnonnullparameter 方法處理address類
* 查詢: 把varchar 型別的address->address型別
* 呼叫getnullableresult/getnullableresult
* 把資料庫的address 重新封裝成address型別
* */
public class mytypehandler extends basetypehandler
/*** 根據列名查詢
*/@override
public address getnullableresult(resultset rs, string columnname) throws sqlexception
return address;
} /**
* 根據下標查詢
*/@override
public address getnullableresult(resultset rs, int columnindex) throws sqlexception
return address;
}//儲存過程
@override
public address getnullableresult(callablestatement cs, int columnindex) throws sqlexception
}
效果如:1, 小新, admin, 北京市-北京市-昌平區-沙河鎮-12 MyBatis自定義型別處理器
自定義型別處理器用於覆蓋系統預設的型別轉換行為,包括傳參和取值 繼承抽象類basetypehandler 實現類中的1個參方法和4個取值方法 jdbc物件型別由mybatis的列舉類org.apache.ibatis.type.jdbctype中定義。其中datetime對映為timestamp p...
mybatis 自定義TypeHandler 的坑
1 場景 2 坑 自定義之後也無效的問題 3 講解 basetypehandler implements typehandler 通過getresult方法呼叫實際介面,模板模式 4 typehandler的型別,處理什麼型別的資料 public class emptystringifnull ex...
MyBatis自定義typeHanler的使用
乙個商戶,在登記的時候需要註冊它的經營範圍。比如1手機,2電腦,3相機,4平板,在介面上是乙個核取方塊 checkbox 在資料庫儲存的是用逗號分隔的字串,例如 1,3,4 而返回給程式的時候是整形陣列list 實現乙個typehandler,可以把list轉換成資料庫的varchar。把資料庫的v...