ITPub博客

首页 > IT职业 > IT生活 > 记一次mybatis typeHandler的应用

记一次mybatis typeHandler的应用

IT生活 作者:huzhizhong 时间:2021-09-09 10:26:45 0 删除 编辑

1,数据库数据类型为 VARCHAR 默认【】

2,PO中数据类型的定义
@ColumnType(typeHandler = DialStatusEnumSetTypeHandler.class)
private Set redialCondition;
3,DialStatusEnumSetTypeHandler具体实现

public class DialStatusEnumSetTypeHandler extends BaseTypeHandler<Set<DialStatusEnum>> {

    @Override
    public Set<DialStatusEnum> getNullableResult(ResultSet rs, String columnName) throws SQLException {
        String val = rs.getString(columnName);
        return JsonUtils.string2Object(val, new TypeReference<Set<DialStatusEnum>>() {
        });
    }

    @Override
    public Set<DialStatusEnum> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        String val = rs.getString(columnIndex);
        return JsonUtils.string2Object(val, new TypeReference<Set<DialStatusEnum>>() {
        });
    }

    @Override
    public Set<DialStatusEnum> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        String val = cs.getString(columnIndex);
        return JsonUtils.string2Object(val, new TypeReference<Set<DialStatusEnum>>() {
        });
    }

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, Set<DialStatusEnum> parameter, JdbcType jdbcType) throws SQLException {
        ps.setString(i, JsonUtils.object2String(parameter));
    }
}

4,Mapper.xml文件

<result column="redial_condition" jdbcType="VARCHAR" property="redialCondition"
                typeHandler="com.yiwise.core.model.enums.handler.DialStatusEnumSetTypeHandler"/>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1446/viewspace-2822093/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: PHP接口安全处理
请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    107
  • 访问量
    922