gpt4 book ai didi

Mybatis在sqlite中无法读写byte[]类问题的解决办法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Mybatis在sqlite中无法读写byte[]类问题的解决办法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

开发环境: springboot + mybatis plus 。

场景:在DAO的bean中有byte[]类时,写入可以成功,但是读取不行。从错误栈中可以看到原因是:sqlite的driver中,JDBC4ResultSet没有实现以下接口:

?
1
2
3
4
public Blob getBlob( int col)
  throws SQLException { throw unused(); }
public Blob getBlob(String col)
  throws SQLException { throw unused(); }

读写byte[]在JDBC规范中有3种接口:

  • InputStream getBinaryStream(int col)
  • byte[] getBytes(int col)
  • Blob getBlob(int col)

Mybatis Plus默认会选择第3个接口。因此,这里只需要将处理方法切换到前两个接口即可:方法就是更换一个TypeHandler 。

直接上代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Data
@TableName (autoResultMap = true )
public class Member {
 
  @TableId
  private String personId;
  private String name;
  private String telephone;
  @TableField (typeHandler = ByteArrayTypeHandler. class )
  private byte [] img;
  private String ext;
  private Integer type;
  private Integer ts;
}

关键点:

  • 添加@TableName(autoResultMap = true)
  • 添加@TableField(typeHandler = ByteArrayTypeHandler.class)

之后就可以正常读写byte[]了 。

总结 。

到此这篇关于Mybatis在sqlite中无法读写byte[]类问题的文章就介绍到这了,更多相关Mybatis在sqlite无法读写byte[]类内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/icyfox_bupt/article/details/108867782 。

最后此篇关于Mybatis在sqlite中无法读写byte[]类问题的解决办法的文章就讲到这里了,如果你想了解更多关于Mybatis在sqlite中无法读写byte[]类问题的解决办法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com