微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将二进制数据插入MySQL不带PreparedStatement

如何解决将二进制数据插入MySQL不带PreparedStatement

找到了解决方法.....虽然我看不到任何地方记录的内容......

您可以通过写入转换为十六进制并以0x开头的字节直接插入二进制数据

例如:

INSERT INTO my_table VALUES (1,0x19c0300dc90e7cedf64703ed8ae8683b,2);

解决方法

我试图在不使用准备好的语句的情况下将一些Binary数据插入MySQL数据库。原因是我将成千上万条语句连接到一个插入中,一次运行一次。(MySQL转储和导入的工作原理)

我已经尝试了以下语句,但是都失败了:

插入my_table值(1,’g = F| }X ‘,2);

插入my_table值(1,CAST(’g = F| }X ‘as BINARY),2);

插入my_table值(1,CONVERT(’g = F| }X ‘,BINARY),2);

插入my_table值(1,BINARY’g = F| }X ‘,2)

我得到的错误是:

com.mysql.jdbc.MysqlDataTruncation:数据截断:第1行的’binary_data’列数据太长

我用来执行该语句的代码很简单:

conn.createStatement()。executeUpdate(sql);

PreparedStatement可以正常工作(但是在这种情况下太慢了)

数据库中的实际String I显示了一点区别:

g =÷óF|¸} X£ì[

二进制视图:67 3d 81 f7 19 f3 46 7c b8 7d 58 8c 10 a3 ec 5b

Java字节:103、61,-127,-9、25,-13、70、124,-72、125、88,-116、16,-93,-20、91

可能与编码有关吗?

任何暗示,Ro

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。