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. 简单了解mysql InnoDB MyISAM相关区别2. MySQL InnoDB 锁的相关总结3. Mysql InnoDB的锁定机制实例详解4. Microsoft Office Access添加图片的方法5. MySQL分支选择参考:Percona还是MariaDB6. SQLServer"通过端口1433连接到主机localhost的TCP/IP连接失败"常见问题的解决方案7. SQL Server 2000的数据库容量究竟是多大8. sql server 2005 批量导入导出9. Centos7 下mysql重新启动MariaDB篇10. 使用 IP 地址连接到 SQL Server 数据库的速度特别慢
