1、場景
- 介面返回物件或Map對資料進行修改
- 查詢的資料對日期型別格式化
- 返回物件中返回自定義的資料字典
2、坑、自定義之後也無效的問題
- 對於返回map型別,資料為NULL的欄位,修改無效,因為rs.wasNull()進行了判斷。欄位為null,則直接返回null
3、講解
BaseTypeHandler implements TypeHandler 通過getResult方法呼叫實際介面, 模板模式
4、程式碼
TypeHandler的型別,處理什麼型別的資料
@MappedTypes(value = { String.class})
@MappedJdbcTypes(value = JdbcType.VARCHAR, includeNullJdbcType = true)
public class EmptyStringIfNull extends BaseTypeHandler<String> {
複製程式碼
配置檔案載入handler包:
mybatis.type-handlers-package=com.lbc.web.util
複製程式碼
欄位值為null,也返回null的問題,重寫getResult,去掉
rs.wasNull() ? null : result;
複製程式碼