我在通过 Oracle JDBC 在 JAVA 的准备好的语句中使用单引号时遇到了处理单引号的问题。
假设我们有一张 Restaurant 表,其中一列 Restaurant_name 的值为 1: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")
将完成它。
关于java - 在 JDBC 中插入单引号以进行 SQL 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60817015/