2

我有一个与 Mysql 兼容的十六进制文字,例如 X'4D7953514C' 如何使用 PreparedStatments 分配这样的值,我尝试了 setString 但该值被包裹在引号中。

目标是有一个看起来像这样的 sql 语句(col1 是一个 varchar):

insert into t1 (col1) values (x'4D7953514C'); 
4

1 回答 1

1

您不能像x'4D7953514C'直接使用 JDBC 那样设置十六进制字符串。您要么需要使用实际setString()的预期值(MySQLsetBytes()new byte[] {0x4D, 0x79, 0x53, 0x51, 0x4C }

X'...'是二进制文字的 SQL 介绍器语法。当您使用参数化查询时,您不是在使用文字,而是在使用参数,因此引入器语法不适用。

于 2013-07-17T09:01:59.430 回答