Java 准备语句作为sql参数

Java 准备语句作为sql参数,java,sql,prepared-statement,Java,Sql,Prepared Statement,如何将准备好的语句的问号传递到类似sql的语句中 与“&”类似,但问号将是从准备好的语句中传递的参数。您可以使用表达式。例如,在ANSI SQL中: where col like '%' || ? || '%' 有些数据库使用concat()或+,而不是(或除了)|您可以使用表达式。例如,在ANSI SQL中: where col like '%' || ? || '%' 有些数据库使用concat()或+,而不是(或除了)|在Java代码中,而不是在SQL中执行此操作 String sql

如何将准备好的语句的问号传递到类似sql的语句中


与“&”类似,但问号将是从准备好的语句中传递的参数。

您可以使用表达式。例如,在ANSI SQL中:

where col like '%' || ? || '%'

有些数据库使用
concat()
+
,而不是(或除了)
|

您可以使用表达式。例如,在ANSI SQL中:

where col like '%' || ? || '%'

有些数据库使用
concat()
+
,而不是(或除了)
|

在Java代码中,而不是在SQL中执行此操作

String sql = "SELECT * FROM mytable WHERE mycolumn LIKE ?";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
    stmt.setString(1, "%" + value + "%");
    try (ResultSet rs = stmt.executeQuery()) {
        // code here
    }
}

在Java代码中执行,而不是在SQL中执行

String sql = "SELECT * FROM mytable WHERE mycolumn LIKE ?";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
    stmt.setString(1, "%" + value + "%");
    try (ResultSet rs = stmt.executeQuery()) {
        // code here
    }
}

用您正在使用的数据库标记您的问题。您的标题表明您希望将准备好的语句作为参数值传递:这是不可能的。如果不是,你可能会想重新考虑一下你的问题。将这些变量改为百分比标志将是一个很好的开始。java和Oracle DB的工作。是的,我知道他们应该是%。谢谢。请用您正在使用的数据库标记您的问题。您的标题表明您希望将准备好的语句作为参数值传递:这是不可能的。如果不是,你可能会想重新考虑一下你的问题。将这些变量改为百分比标志将是一个很好的开始。java和Oracle DB的工作。是的,我知道他们应该是%。谢谢。不要使用特定于DBMS的连接语法,请在中执行。不要使用特定于DBMS的连接语法,请在中执行。