美文网首页我爱编程
MyBatis使用枚举或其他对象

MyBatis使用枚举或其他对象

作者: JaJa大宝剑 | 来源:发表于2018-06-21 22:51 被阅读0次

在sys_role表中存在enabled,这个字段有两个可选的值,0为禁用,1为启用。但是在SysRole类中,我们使用Integer enabled,这种情况下必须手动检查enabled的值是否符合要求。在只有两个的值的情况下,处理起来比较容易,但是当出现比较多的值时,对值的校验就变得复杂。因此,在这种情况下,我们一般使用枚举类型。

首先写一个枚举
····
public enum Enabled {
disabled(1),
enabled(0);

private final int value;

Enabled(int value) {
    this.value = value;
}

public int getValue() {

    return value;
}

}

····
在写自定义处理器
····
public class EnabledTypeHandler implements TypeHandler<Enabled> {
private Map<Integer, Enabled> enabledMap = new HashMap<Integer, Enabled>();

public EnabledTypeHandler() {
    for (Enabled enabled : Enabled.values()) {
        enabledMap.put(enabled.getValue(),enabled);
    }
}
@Override
public void setParameter(PreparedStatement preparedStatement, int i, Enabled enabled, JdbcType jdbcType) throws SQLException {
    preparedStatement.setInt(i, enabled.getValue());
}

@Override
public Enabled getResult(ResultSet resultSet, String s) throws SQLException {
    Integer value = resultSet.getInt(s);
    return enabledMap.get(s);
}

@Override
public Enabled getResult(ResultSet resultSet, int i) throws SQLException {
    Integer v = resultSet.getInt(i);
    return enabledMap.get(v);
}

@Override
public Enabled getResult(CallableStatement callableStatement, int i) throws SQLException {
    Integer v = callableStatement.getInt(i);
    return enabledMap.get(v);
}

}

····
在mybatis-config.xml中导入

    <typeHandlers>
        <typeHandler handler="pers.congcong.myBatis2.type.EnabledTypeHandler" javaType="pers.congcong.myBatis2.type.Enabled"/>
    </typeHandlers

相关文章

  • MyBatis使用枚举或其他对象

    在sys_role表中存在enabled,这个字段有两个可选的值,0为禁用,1为启用。但是在SysRole类中,我...

  • Mybatis枚举使用

    枚举定义如下: 实体如下: 下面新增实体对象sex属性值为:SexEnum.nan,SQL中ID都自己设置,主要是...

  • SpringBoot和mybatis项目中使用枚举

    枚举基类 枚举定义 mybatis类型处理器 mybatis.xml中配置 mybatis mapper文件中re...

  • MyBatis中使用枚举

    问题 在编码过程中,经常会遇到用某个数值来表示某种状态、类型或者阶段的情况,比如有这样一个枚举: 通常我们希望将表...

  • 枚举

    如何定义枚举类 什么枚举类:类里的对象是有限个,可以枚举出来 如何使用enum定义枚举类 枚举...

  • MyBatis中简化分页(PageHelper)

    1、内存分页(使用RowBounds对象进行分页)     Mybatis使用RowBounds对象进行分页,它是...

  • Swift5.0笔记 - 4. 枚举

    1) 定义 或 2) 使用 3) 关联值(Associated Values) 有时会将枚举的成员值跟其他类型的...

  • Swift_序列或集合的枚举:Array.enumerated(

    【使用】:序列或集合的枚举

  • Java核心类-枚举类

    Java 进阶——枚举enum使用小结及使用枚举替代你的常量类 通过enum定义的枚举类,和其他的class没有任...

  • Java高级-枚举类与注解

    10.1.枚举类的使用: 入门 类的对象只有有限个,确定的 自定义枚举类 一.枚举类的使用1.枚举类的理解: 类的...

网友评论

    本文标题:MyBatis使用枚举或其他对象

    本文链接:https://www.haomeiwen.com/subject/pvacyftx.html