b_xinjun1120 2022-03-21 16:21 采纳率: 0%
浏览 1169
已结题

mybatis 自定义 BaseTypeHandler 查询不起作用。

定义 ArrayJsonHandler

@MappedTypes(JSONArray.class)
@MappedJdbcTypes(JdbcType.OTHER)
public class ArrayJsonHandler extends BaseTypeHandler<JSONArray> {
    //设置非空参数
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, JSONArray parameter, JdbcType jdbcType) throws SQLException {
        ps.setString(i, String.valueOf(parameter.toJSONString()));
    }
    //根据列名,获取可以为空的结果
    @Override
    public JSONArray getNullableResult(ResultSet rs, String columnName) throws SQLException {
        System.out.println(columnName);
        String sqlJson = rs.getString(columnName);
        if (null != sqlJson){
            return JSONArray.parseArray(sqlJson);
        }
        return null;
    }
    //根据列索引,获取可以为空的结果
    @Override
    public JSONArray getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        String sqlJson = rs.getString(columnIndex);
        if (null != sqlJson){
            return JSONArray.parseArray(sqlJson);
        }
        return null;
    }

    @Override
    public JSONArray getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        String sqlJson = cs.getString(columnIndex);
        if (null != sqlJson){
            return JSONArray.parseArray(sqlJson);
        }
        return null;
    }
}

定义 mapper

 <result column="imgs" property="imgs" jdbcType="OTHER" typeHandler="com.xxx.xxx.ArrayJsonHandler"/>

增删改都没问题 查询为null,断点 System.out.println(columnName);没有进入。

img

  • 写回答

3条回答 默认 最新

  • 一起随缘 2022-03-28 11:17
    关注
    获得0.60元问题酬金

    查看BaseTypeHandler是否注册成功,在使用的方法上启用debug模式,跟踪下代码流程,参考如下链接:
    https://juejin.cn/post/6844904004749787144

    评论

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 赞助了问题酬金5元 3月21日
  • 修改了问题 3月21日
  • 创建了问题 3月21日

悬赏问题

  • ¥15 Odoo17操作下面代码的模块时出现没有'读取'来访问
  • ¥50 .net core 并发调用接口问题
  • ¥15 网上各种方法试过了,pip还是无法使用
  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题