将结果集存储在arraylist Java中

时间:2013-05-28 21:25:21

标签: java mysql jdbc

我的程序在band和CD band上查询MySQL数据库,并将查询作为结果集返回。我试图将CD表查询的结果集存储到arraylist中,以便存储每张CD的Title和Year,然后通过addCD(CD cd)添加到当前Band。我的Band类有一个CD对象的arraylist,我的CD对象有一个标题的String和年份的int。

1 个答案:

答案 0 :(得分:1)

您可以在单个SQL查询中从CD表中选择TITLE和YEAR值,如下所示。然后,YEAR将在结果集的索引(2)处可用。使用包装器类Integer将YEAR字符串转换为int

rs = st.executeQuery("SELECT TITLE, YEAR FROM CD WHERE BAND_ID = " + i + ";");

// notice the name change below
Band band = new Band(name); // or, call this "b" to avoid name conflict

// Get the title of each CD for the current band
while (rs.next()) {
    band.addCD(
        new CD(rs.getString(1), Integer.parseInt(rs.getString(2))); // int year;
}

// Add a new band to the arraylist
bandList.add(band); // Added "List" to the name

我冒昧地改变了几个名字。基本上,调用一个频段列表bandList甚至bands会使变量的目的更加清晰,而不是将其称为band(单数)。