Mybatis擴充套件之自定義型別轉化器

2021-08-28 21:10:21 字數 980 閱讀 1689

場景:當字段的型別和資料庫型別不一致時,需要自定義型別轉化器。

比如:

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...