java– 将二进制数据插入MySQL(没有PreparedStatement)

java– 将二进制数据插入MySQL(没有PreparedStatement),第1张

概述我试图在不使用预准备语句的情况下将一些二进制数据插入MySQL数据库.这样做的原因是我将数千个语句连接成一次运行一次. (究竟MySQL转储和导入的工作原理)我已经尝试了以下语句,但都失败了: INSERT INTO my_table VALUES (1,'g=���F|�}X���',2); INSERT INTO my_table VALU

我试图在不使用预准备语句的情况下将一些二进制数据插入MySQL数据库.这样做的原因是我将数千个语句连接成一次运行一次. (究竟MysqL转储和导入的工作原理)

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

INSERT INTO my_table VALUES (1,’g=���F|�}X���’,2);

INSERT INTO my_table VALUES (1,CAST( ‘g=���F|�}X���’ AS BINARY),CONVERT( ‘g=���F|�}X���’,BINARY),BINARY ‘g=���F|�}X���’,2)

我得到的错误是:


com.MysqL.jdbc.MysqLDataTruncation: Data truncation: Data too long for column ‘binary_data’ at row 1

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

conn.createStatement().executeUpdate(sql);

PreparedStatements工作正常(但在这种情况下速度太慢)

数据库中的实际String I显示有点不同:

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

Binary VIEw: 67 3d 81 f7 19 f3 46 7c b8 7d 58 8c 10 a3 ec 5b

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

这可能与编码有关吗?

任何提示很多,
罗最佳答案找到解决方案….虽然不是我看到的任何地方记录的…..

您可以通过写入转换为HEX且前面为0x的字节来直接插入二进制数据

例如:

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

以上是内存溢出为你收集整理的java – 将二进制数据插入MySQL(没有PreparedStatement)全部内容,希望文章能够帮你解决java – 将二进制数据插入MySQL(没有PreparedStatement)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存