我在通过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")将完成它。

10-08 00:58