3
static byte[] ac = {'\\', '\'', '{', '}', '{'}; //not OK insert into tt values('\\\'{}{')
static byte[] ac = {'\\', '\'', '{', '}'}; //OK insert into tt values('\\\'{}')
static byte[] ac = {'\\', '\'', '{'}; //OK insert into tt values('\\\'{')
static byte[] ac = {'\'', '{', '}', '{'}; //OK insert into tt values('\'{}{')
static byte[] ac = {'\\', '{', '}', '{'}; //OK insert into tt values('\\{}{')
  • Ubuntu系统
  • MySQL 5.5
  • MySQL JDBC 5.1.22

我无法向 blob 表字段插入 5 个字节,这些字节如上所示。数据源连接编码设置为UTF-8

相关资料:http ://dev.mysql.com/doc/refman/5.5/en/string-literals.html

知道为什么{}这么特别吗?它适用于工作台。

对于不好的,我得到了以下异常:

java.sql.SQLException: Not a valid escape sequence: {')

4

1 回答 1

5

这是 MySQL 的 JDBC 客户端 (Connector/J) 的某些版本中的错误;请参阅http://bugs.mysql.com/bug.php?id=31457(以及从那里链接的其他错误)。您应该可以通过升级到最新的 Connector/J 来修复它;或者,您可以通过禁用转义处理(通过编写Statement.setEscapeProcessing(false))来解决它。

于 2013-03-01T07:39:40.127 回答