当前位置: 首页 > 知识库问答 >
问题:

准备好的声明中的OR子句Java

叶光华
2023-03-14

我们可以在使用Java的PreparedStatement中使用OR子句吗?

PreparedStatement stmt=con.prepareStatement("delete from emp where id=?");  
stmt.setString(1, "'MIKE' || 'ANDY'"); 
int i = stmt.executeUpdate();  
System.out.println(i + " records deleted");  

共有2个答案

潘俊
2023-03-14

您可以简单地使用两个参数

PreparedStatement stmt=con.prepareStatement("delete from emp where id=? or id=?");
stmt.setString(1,"ANDY");
stmt.setString(2,"MIKE");
东郭子默
2023-03-14

不,这不是原始文本替换,您不能在查询块中插入并期望它们被合并进来。但您可以使用2个占位符来编写它:

PreparedStatement stmt=con.prepareStatement(
    “delete from emp where id in (?, ?)”);
stmt.setString(1,"MIKE”);
stmt.setString(2, “ANDY”);
 类似资料:
  • 问题内容: 何时使用语句而不是准备语句。我想在没有参数的查询中使用语句,但是为什么不使用预处理语句呢?对于没有参数的查询,哪一个更快。 问题答案: 我想在没有参数的查询中使用语句,但是为什么不使用预处理语句呢? 还差得远 对于返回结果集或更新计数的INSERT,UPDATE和DELETE语句,使用PreparedStatement。正如Joachim所指出的,它们不适用于DDL语句,也不适用于应使

  • 我用的是c3p0。我建立了一个池,如下所示, 我有一个对象,准备初始化的几个准备好的语句。为了做到这一点,我从PooledDataSource中抓取一个连接(),然后准备一个语句(例如,)。准备好的语句作为私有变量存储在对象中,当前连接在初始化结束时关闭()。准备好的语句用于对象的方法中。 对于更新数据库的准备好的语句,这很好。但是,当我调用一个使用预处理语句()来查询数据库的方法时,我会得到以下

  • 我正在使用PreparedStatement的setString方法来设置sql查询中开始日期和结束日期的值。 但是这些值没有被设置。我知道通常有一个等号:“tableA.member_id = ?" " 当我在sql语句中使用“Between”运算符时,如何调用setString方法?希望有人能提出建议。非常感谢。

  • 我准备了以下语句,通过JDBC驱动程序将其发送到Oracle数据库: 但是,我希望使用相同的准备好的语句,通过提供通配符参数这样的东西来获取表中的所有行。我尝试了“*”和“”这样的字符串,但它总是不返回行。 是否存在用于获取所有行的此准备语句中的参数的值?

  • 我(试图)将我的查询从未准备好的语句移到MySQLi准备好的语句。到目前为止,我所学到的应该在下面的模式中发生: 编辑:如果我在准备语句后print_r,我将得到: 如果我在bind_param后面print_r得到的语句: 如果我在执行语句后print_r,我会得到: 但是我如何循环计算结果呢? 这似乎不起作用:-/