java - 在 JDBC 中插入单引号以进行 SQL 查询不起作用

标签 java sql oracle jdbc special-characters

我在通过 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/

相关文章:

java - 了解 Java 中的方法同步

sql - Postgres 函数创建但不执行

oracle - 计算两个选择计数的百分比

java - 无法使用hibernate创建mysql表

java - 设置socket opt failed bad file number异常

java - 请求另一个 EditText 的焦点行为异常

mysql - 如果表为空,执行 INSERT?

sql - PostgreSQL 使用另一列的值更新 JSONB 列

java - 自动 Hibernate 索引创建时间太长

Java 日历问题