Ibatise 使用TypeHandler將資料庫中的值與java的列舉值之間轉換
1、先看TypeHandlerCallback的定義:
package com.ibatis.sqlmap.client.extensions;
import com.ibatis.sqlmap.client.extensions.ParameterSetter;
import com.ibatis.sqlmap.client.extensions.ResultGetter;
import java.sql.SQLException;
public interface TypeHandlerCallback {
void setParameter(ParameterSetter var1, Object var2) throws SQLException;
Object getResult(ResultGetter var1) throws SQLException;
Object valueOf(String var1);
}
2、我重新寫了一個基礎類實現了TypeHandlerCallback 介面,同時可以增加一些你需要的方法
public abstract class BaseTypeHandler<E extends BaseEnum> implements TypeHandlerCallback
3、再寫你需要的類繼承基礎類,並重寫你需要的方法
public class ArrearageLetterTypeHandler extends BaseTypeHandler<ArrearageLetterTypeEnum> {
4、在sqlMap檔案中標籤ResultMap或者ParameterMap中配置TypeHandler屬性
<result column="ATTACHMENT_TYPE" property="attachmentType" typeHandler="com.plocc.support.enums.handler.ArrearageLetterTypeHandler"/>