概述
最近同事使用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存储数据类型不匹配问题解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复