如何在预准备语句中处理数组?即,我想做一个查询,我得到的一个参数是一个字符串数组,我想在查询中使用(不要选择有一个字段在数组中的行)?
答案 0 :(得分:1)
现在这可能对您没有帮助,但我读到JDBC 4将支持2003版SQL中定义的数组类型。
答案 1 :(得分:1)
某些JDBC驱动程序可能已经(在JDBC 4之前)包含在预准备语句中支持数组类型参数的专有扩展 - 您需要为此参考API。这意味着您必须在SQL中使用和操作类似数组的类型。
一种解决方法是使用临时表。这些是这种解决方案的元步骤:
示例:IN表达式被JOIN替换为临时表。
答案 2 :(得分:1)
这很大程度上取决于使用的RDBMS。通常可以使用供应商的jdbc驱动程序扩展来完成此类功能。
我找到的2个变种(对于Oracle): http://blogs.itemis.de/kloss/2009/03/05/arrays-preparedstatements-jdbc-and-oracle/
http://www.angelfire.com/home/jasonvogel/java_jdbc_arrays.html
试着看看这对你有帮助。