Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中准备SQL查询时设置整数列表_Java_Mysql_Prepared Statement - Fatal编程技术网

如何在Java中准备SQL查询时设置整数列表

如何在Java中准备SQL查询时设置整数列表,java,mysql,prepared-statement,Java,Mysql,Prepared Statement,我有一个这样的查询-从tbl中选择*,其中。。。和(2,3,4)中的colname 当我使用Java中的PreparedStatement准备查询(…'colname in(?))时,我应该调用什么setter方法来设置这些整数?整数在整数数组中可用,大小不同。如果重要的话,数据库是MySQL,所讨论的列是int类型的 您可以使用另一种语法 WHERE colname = ANY (?) 并调用PreparedStatement.setArray()。您必须提供java.sql.Array的实

我有一个这样的查询-从tbl中选择*,其中。。。和(2,3,4)中的colname


当我使用Java中的PreparedStatement准备查询(…'colname in(?))时,我应该调用什么setter方法来设置这些整数?整数在整数数组中可用,大小不同。如果重要的话,数据库是MySQL,所讨论的列是int类型的

您可以使用另一种语法

WHERE colname = ANY (?)

并调用PreparedStatement.setArray()。您必须提供java.sql.Array的实例作为参数。ANY而不是IN的一个优点是,您可以传递空数组,而不会导致sql语法错误

作为Learning解释的补充:

创建数组可能很棘手

JDK1.6及更高版本中有一个creator方法。

由于JDK1.6是最新的稳定版本,您的JDBC驱动程序可能不支持它


您可以尝试创建自己的阵列实现,但这可能不适用于所有JDBC连接器实现。

如何创建java.sql.Array的实例?我想知道为什么这不是世界上评分最高的问题!;)