gpt4 book ai didi

java - 循环从数据库表中获取无限ArrayList/List

转载 作者:行者123 更新时间:2023-12-01 22:26:15 25 4
gpt4 key购买 nike

我有这段代码从数据库表创建一个 ArrayList,并将其拆分为 3 个单独的 ArrayList:

    table = conn.createStatement();
String sql = "select * from tab1";
ResultSet rs = table.executeQuery(sql);
int columns = rs.getMetaData().getColumnCount();

ArrayList<String> tempTable = new ArrayList<String>();
while(rs.next())
{
int i = 1;
while(i<=columns)
{
tempTable.add(rs.getString(i++));
}
}
ArrayList<String> tempTable1 = new ArrayList<String>(tempTabe.subList(0, 9));
String tableonLine = tempTable1.toString().replaceAll("[^a-zA-Z0-9\\-:.,]", " ");
System.out.println("Sublist 1: "+tableonLine);

ArrayList<String> tempTable2 = new ArrayList<String>(tempTable.subList(9, 18));
String tableoneLine2 = tempTable2.toString().replaceAll("[^a-zA-Z0-9\\-:.,]", " ");
System.out.println("Sublist 2: "+tableoneLine2);

ArrayList<String> tempTable3 = new ArrayList<String>(tempTable.subList(18, 27));
String tableoneLine3 = tempTable3.toString().replaceAll("[^a-zA-Z0-9\\-:.,]", " ");
System.out.println("Sublist 3: "+tableoneLine3);

我的问题是,虽然当我知道表中的行数时,代码可以依次分割每一行,但我需要使其无限扩展,以便应用程序依次获取每一行,并将它们发送到二维字符串数组。谁能想到解决办法吗?

最佳答案

您可能需要一个列表列表:

List<List<String>> rows = new ArrayList<List<String>>();

一行的外部列表的每个元素,内部列表的每个元素都是一个值。那么你的循环将类似于:

while(rs.next() {
List<String> row = new ArrayList<String>();
int i=1;
while (i<=columns) {
row.add(rs.getString(i);
}
rows.add(row);
}

这应该有效:)

关于java - 循环从数据库表中获取无限ArrayList/List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28738199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com