Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 从结果集生成数组?_Java_Sql_Jdbc - Fatal编程技术网

Java 从结果集生成数组?

Java 从结果集生成数组?,java,sql,jdbc,Java,Sql,Jdbc,我对整个SQL和Java都很陌生,但在这里我真的很困惑 我有一个通过调用几个数组参数来调用的方法,如下所示 Method(String[], int, int[], int[]) 我正在做一个结果集,以检查是否有任何行可用,其中有搜索项的ID匹配 ResultSet group = statement.executeQuery("SELECT * FROM `circulation` WHERE `ItemID` = "+itemID); 然而,我在这里完全搞不懂如何构造这个方法 字符串[]

我对整个SQL和Java都很陌生,但在这里我真的很困惑

我有一个通过调用几个数组参数来调用的方法,如下所示

Method(String[], int, int[], int[])
我正在做一个结果集,以检查是否有任何行可用,其中有搜索项的ID匹配

ResultSet group = statement.executeQuery("SELECT * FROM `circulation` WHERE `ItemID` = "+itemID);
然而,我在这里完全搞不懂如何构造这个方法


字符串[]和int[]参数存储在数据库中,而标准int参数是itemID。我不知道如何进行此操作以正确调用该方法


该死,我以为我也做得很好

看看apachecommons dbutils。它是一个围绕JDBC的简单包装器,允许您将结果集转换为任何标准数据结构

参数通常用于向被调用的方法提供信息。要从被调用的方法获取信息,通常使用返回值

您的方法似乎在名为
circulation
的数据库表中搜索给定项目ID的行。因此,项目ID应该是一个参数。找到的行应为返回值。因此,该方法的签名应为:

Circulation[] findByItemId(int itemId);
或者更好,使用集合而不是数组:

List<Circulation> findByItemId(int itemId);
因此,您的
findByItemId()
方法将创建循环的空列表,然后迭代结果集中的行,为每一行构造一个
Circulation
实例,并将该实例添加到列表中。然后它将返回该列表

最后,您将使用连接来构建一个接受参数的SQL查询。这是危险的。您应该使用预先准备好的语句。了解它们。

您可以使用函数

rs.getArray()

使用columnName或ColumnLabel。
但是这个函数返回objects数组,您可以将其转换为Integer和String。

由于您不知道将得到多少个结果,一种实用的方法是先将它们存储在动态结构中(如
java.util.List
),然后再将它们分配给静态结构(数组)。“字符串[]和int[]参数是存储在数据库中的内容“所以您有两个数组,其中包含来自数据库中每行不同列的值?”?您应该真正创建一个表示数据库存储的内容的类,并拥有一个集合(可能是某种列表,可能是ArrayList,而不是数组)。
public class Circulation {
    private int id;
    private String name;
    private int itemId;

    // constructor, getters, and other useful methods omitted for brevity
}