gpt4 book ai didi

java - 如何将 ArrayList 绑定(bind)到 Oracle 中的 PreparedStatement?

转载 作者:搜寻专家 更新时间:2023-10-31 19:42:44 24 4
gpt4 key购买 nike

我想知道是否有一种方法可以将 ArrayList(或任何类型的列表)绑定(bind)到最终将用于访问 Oracle 数据库的 PreparedStatement。我发现:

PreparedStatement IN clause alternatives?

这似乎与我的问题相似,但这个问题更具体:我想将一个 ArrayList 绑定(bind)到一个 PreparedStatement 以便在 Oracle 中使用,如果可能的话,这是如何完成的?

最佳答案

您不能将列表绑定(bind)到准备好的语句中的单个参数。

为列表中的每个元素生成带有参数标记的SQL,例如:

SELECT NAME FROM ITEM WHERE ID IN (?, ?, ?, ?)

即使您将为每个查询生成一个新语句,我仍然建议使用 PreparedStatement。如果您的列表包含 String 实例,您将获得必要的转义以防止 SQL 注入(inject)。

但即使它是安全类型,如 Integer 对象,一些驱动程序或中间件也可以缓存 PreparedStatements,并在请求相同表单时返回缓存的实例。当然,一些测试是必要的。如果您的列表大小差异很大,您将有许多不同的语句,而实现不当的缓存可能无法处理如此多的语句。

关于java - 如何将 ArrayList 绑定(bind)到 Oracle 中的 PreparedStatement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/303218/

24 4 0