当前位置:  开发笔记 > 编程语言 > 正文

如何将ArrayList绑定到Oracle中的PreparedStatement?

如何解决《如何将ArrayList绑定到Oracle中的PreparedStatement?》经验,为你挑选了1个好方法。

我想知道是否有办法将ArrayList(或任何类型的List)绑定到PreparedStatement,最终将用于访问Oracle数据库.我发现:

PreparedStatement IN子句替代?

这看起来与我的问题类似,但这个问题更具体:我想将一个ArrayList绑定到要在Oracle中使用的PreparedStatement,如果可能的话,这是如何实现的?



1> erickson..:

您不能将List绑定到预准备语句中的单个参数.

使用列表中每个元素的参数标记生成SQL,例如:

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

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

但即使它是安全类型,如Integer对象,某些驱动程序或中间件也可以缓存PreparedStatements,如果请求相同的表单则返回缓存的实例.当然,有些测试是必要的.如果您的列表大小差异很大,那么您将拥有许多不同的语句,并且可能无法处理执行效果不佳的缓存.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有