在传输Blob类型的数据时,大部分按照4个字节一个单位来进行编码,如果不修改可能会按照2个字节、4个字节来进行编码因此需要修改Mysql中的配置文件
方式一(配置文件修改):
在Mysql/bin目录下找到my.ini文件,如果没有就创建
在my.ini里添加如下内容
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
[client]
default-character-set=utf8mb4
命令行重启Mysql服务
在查询语句执行
ALTER TABLE customers CONVERT TO CHARACTER SET utf8mb4;
即可
方式二(客户端修改):
打开客户端选中表,选择修改表(这里用的是SQLyog - 64 bit Trial)
选择字符集utf8mb4
修改
返回IDEA中重新运行
FileInputStream is = new FileInputStream(new File("liu.png"));
ps.setBlob(1,is);
ps.execute();
更新Blob数据即可
成功