java - PreparedStatement 在多个索引上设置值

标签 java sqlite prepared-statement

我对这样的准备好的语句有疑问:

select ... from ... where xy = ? and foo = ? and bla = ?

我可以为每个索引设置一个字符串吗?否则我必须这样做

prep.setString(1, "bla");
prep.setString(2, "bla");
prep.setString(3, "bla");

或者用for循环...但是有一个优雅的方法吗? (除了调整准备好的语句之外?)可能有一种我还不知道的方法......

否则我创建自己的PreparedStatement类并使用此函数扩展它

最佳答案

您真正需要多久为 PreparedStatement 中的多个索引设置相同的值?对于少数用例,我不会太担心循环一次或两次,实际上你必须这样做......

更新:当然,您也可以将 SQL 重写为类似这样的内容;-)

select ... from ... where ? = all (
  select xy from ..
  union
  select foo from ..
  union
  select bla from ..
)

那么您就只有一个绑定(bind)变量和一条功能等效的 SQL 语句。不过我不知道性能如何......

关于java - PreparedStatement 在多个索引上设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6745643/

相关文章:

sqlite - 您能否在查询数据库后将原本是 bool 的 sqlite 数据库中的 int 解析回 bool ?

java - 对于 JDBC 准备语句,当 SQL 语句中提供实际值时,如何确定变量的位置

java - 我正在尝试从子类访问私有(private)变量

java - java线程同步问题

mysql - 使用另一个 GROUP BY 时选择具有 MAX 值的行

java - JDBC 更新查询更新所有列,而实际上我只更新少数列

PHP 用 LIKE 准备语句

java - hibernate 一对一还是组件?

java - 在 MPI (Java OpenMPI) 中发送大数据

javascript - Phonegap - 如何摆脱未捕获的类型错误