1

使用 H2 时,当我尝试写一行时,第一个元素是 ABC,第二个元素是 [C@26afa68a

Syntax error in SQL statement "INSERT INTO USER VALUES(ABC,[[*]C@F4D5BC9) " expected "), DEFAULT, NOT, EXISTS, SELECT, FROM"; SQL statement:INSERT INTO user VALUES(abc,[C@f4d5bc9) [42001-167]

我不知道是否有办法让 H2 接受特殊字符,但很高兴知道如何处理这个问题。

谢谢!

4

1 回答 1

3

您应该使用 PreparedStatement:

PreparedStatement prep = conn.prepareStatement("INSERT INTO USER VALUES(?, ?)");
prep.setString(1, "ABC");
prep.setString(2, "[C@f4d5bc9");
prep.executeUpdate();
prep.close();

使用 PreparedStatement 是首选解决方案,因为这样您就不必转义数据。如果ABC和/和[C@f4d5bc9是常量,您可以使用:

Statement stat = conn.createStatement();
stat.executeUpdate("INSERT INTO USER VALUES('ABC', '[C@f4d5bc9');
stat.close();
于 2012-06-18T20:45:20.263 回答