如果我的查询类似于下面显示的查询
select first_name, author, location
from author_details
where first_name=?
?使用
在Java端填充值statement = getConnection().prepareStatement(MY_QUERY);
statement.setString(1, name);
我想更新查询以获取where子句中的附加检查:
select first_name, author, location
from author_details
where first_name=? or last_name=?
我想使用传入的相同值作为'名称'来自java代码。是否可以使用相同的传入值来检查first_name和last_name,还是必须在java代码上添加另一个statement.setString(2, name)
条目?
我知道在SQLPlus中我可以声明一个变量并在以后使用它但我不确定如何在通过JDBC执行的sql查询上执行相同操作
答案 0 :(得分:1)
JDBC(至少用于Oracle)为?
查询中的所有PreparedStatement
占位符创建不同的绑定变量名称。您不能有一个setString
调用覆盖多个绑定变量。这意味着即使您传入相同的setString
变量,也必须在第二个参数上添加对name
的另一个调用。