mybatis枚举持久化成整形

jiangc198745 2011-09-16 06:56:54
mybatis默认吧枚举持久化成整形,但是我们现在项目需要把枚举持久化成整形,
所以我自己定义了以个TypeHandler来完成,但是存在一个问题就是 必须为每一个枚举做一个TypeHandler这样在整个项目中太多了, 可以写一个MyEnumTypeHandler来实现对枚举的持久化

/**
*
* 枚举类型复写一个valueOf方法,int方法的valueof
* */
public interface IEnum<Enum> {

public Enum valueOf(int value);

}
/**
* 处理自己的枚举类型性的TypeHandler
*
* */
public class MyEnumTypeHandler<E extends IEnum<E>> implements TypeHandler {

public void setParameter(PreparedStatement ps, int i, Object parameter,
JdbcType jdbcType) throws SQLException {
Enum<?> en=(Enum<?>)parameter;
if (jdbcType == null) {
ps.setInt(i, en.ordinal());
} else {
ps.setObject(i, en.ordinal(), jdbcType.TYPE_CODE);
}
}

public E getResult(ResultSet rs, String columnName)
throws SQLException {
return type.valueOf(rs.getInt(columnName));
}

public E getResult(CallableStatement cs, int columnIndex)
throws SQLException {
return type.valueOf(cs.getInt(columnIndex));
}

}

在sql-config中注册TypeHandler

<typeHandlers>
<typeHandler javaType="java.lang.Enum" jdbcType="INTEGER"
handler="cc.mypackage.util.MyEnumTypeHandler" />
</typeHandlers>

但是我这种方法也不能完成枚举类型到int类型的持久化,望大虾们给予指导
...全文
494 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
原来缘来 2011-09-16
  • 打赏
  • 举报
回复
哇塞,今天刚用ibatis写了个多对一的crud,爱莫能助呀

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧