我是靠谱客的博主 彩色龙猫,最近开发中收集的这篇文章主要介绍mybatis-plus存储数据类型不匹配问题解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近同事使用mybatis-plus处理blob类型数据保存进mysql数据库时报错了,提示如下:

java.lang.IllegalStateException: Type handler was null on parameter mapping for property 'embedding'. It was either not specified and/or could not be found for the javaType (java.sql.Blob) : jdbcType (null) combination.

我之前解决过这个问题,翻了一下git提交记录找到了,最佳实例如下:

一、新增处理blob类型的handler

@MappedJdbcTypes(JdbcType.BLOB)
@MappedTypes(Blob.class)
public class CustomBlobTypeHandler extends BaseTypeHandler<Blob> {

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i,
                                    Blob parameter, JdbcType jdbcType) throws SQLException {
        InputStream is = parameter.getBinaryStream();
        try {
            ps.setBinaryStream(i, is, is.available());
        } catch (IOException e) {
            throw new SQLException(e);
        }
    }

    @Override
    public Blob getNullableResult(ResultSet rs, String columnName)
            throws SQLException {
        return rs.getBlob(columnName);
    }

    @Override
    public Blob getNullableResult(ResultSet rs, int columnIndex)
            throws SQLException {
        return rs.getBlob(columnIndex);
    }

    @Override
    public Blob getNullableResult(CallableStatement cs, int columnIndex)
            throws SQLException {
        return cs.getBlob(columnIndex);
    }

}

二、配置handler

mybatis-plus:
  global-config:
    db-config:
      id-type: assign_id
# 对新增的handler进行配置
  type-handlers-package: *.mybatis.handlers

再加一个测试用例测试,问题解决。

最后

以上就是彩色龙猫为你收集整理的mybatis-plus存储数据类型不匹配问题解决的全部内容,希望文章能够帮你解决mybatis-plus存储数据类型不匹配问题解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部