Mybatis在sqlite中无法读写byte[]类问题的解决办法
开发环境: springboot + mybatis plus
场景:在DAO的bean中有byte[]类时,写入可以成功,但是读取不行。从错误栈中可以看到原因是:sqlite的driver中,JDBC4ResultSet没有实现以下接口:
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
直接上代码:
@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[]类内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. MariaDB表表达式之公用表表达式(CTE)2. MariaDB10.5.6的安装与使用详解3. ACCESS的参数化查询,附VBSCRIPT(ASP)和C#(ASP.NET)函数第1/2页4. Window7安装MariaDB数据库及系统初始化操作分析5. DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 .6. Exchange在接收连接器上启用匿名中继的方法7. Sql Server Management Studio连接Mysql的实现步骤8. debian10 mariadb安装过程详解9. SQL 嵌套查询的具体使用10. SQL Server2022安装图文教程(最新推荐)

网公网安备