我在通过Oracle JDBC在JAVA中的预备语句中使用单引号时遇到问题。
假设我们有一个表格Restaurant,其中有一个值为1的restaurant_name列:Jack's Deli
我想使用一个简单的预准备语句查询,如下所示:
String result = "Jack\'\'s Deli"
String sqlStatement = "select * from Restaurant where restauraunt_name like ? escape '\\' ";
PreparedStatement pStmt = conn.prepareStatement(sqlStatement);
pstmt.setString(1, result);
结果显示返回的值为0,但是当我直接在数据库(ORACLE)中搜索查询时,它可以正常工作并检索结果。 (Oracle使用两个单引号作为第一个的转义符)
我认为该值未正确传递给数据库。或还有其他格式问题。
最佳答案
准备好的语句的要点是您不需要任何转义。.setString(1, "Jack's Deli")
将完成它。