为了账号安全,请及时绑定邮箱和手机立即绑定

记一次mybatis typeHandler的应用

标签:
Java

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"/>
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
11
获赞与收藏
107

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消