我试图在不使用预准备语句的情况下将一些二进制数据插入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工作正常(但在这种情况下速度太慢)
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);
原文地址:https://www.jb51.cc/mysql/434166.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。