我对这样的准备好的语句有疑问:
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/