1. 程式人生 > >Ibatise 使用TypeHandler將資料庫中的值與java的列舉值之間轉換

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"/>