我正在使用某些xyz逻辑提取数据。提取后,每次迭代都会得到多个列表。
for (int i= 0; i<= 5; i++)
{
for (int j= 0; j<= 5; j++)
{
//data extraction logic
lList1.add(value1);
lList2.add(value2);
lList3.add(value3);
}
//in each iteration I am getting list different
System.out.println(" lList1 for iteration "+i+"is: "+lList1);
System.out.println(" lList2 for iteration "+i+"is: "+lList2);
System.out.println(" lList3 for iteration "+i+"is: "+lList3);
}
我需要将这些列表传递给数据库。每个列表与db中的一列关联。
例如:lList1用于column1,lList2用于column2,lList3用于column3等
将这些列表传递给db或在Java中逐行写入这些值的最佳方法是什么 输出应该像
第一迭代列表值的行1 lList1 lList2 lList3等
第2次迭代列表值的第2行lList1 lList2 lList3等
有人可以帮忙吗?
答案 0 :(得分:1)
您可以使用多维集合
ArrayList<ArrayList<Object>> a = new ArrayList<ArrayList<Object>>();
结果可能是这样(根据您的逻辑):
Multidimensional ArrayList: [[3, 4], [12, 13], [22, 23], [33,23]]
这是一个完整的示例:
ArrayList<ArrayList<Object>> list = new ArrayList<ArrayList<Object>>();
for (int i= 0; i<= 5; i++) {
//if you got all the values
list.add(new ArrayList<Object>(Arrays.asList(value1, value2, value3)));
//else you have to fetch them from another loop
for (int j= 0; j<= 5; j++) {
list.add(new ArrayList<Object>());
list.get(j).add(value1);
}
}
答案 1 :(得分:1)
创建一个包含三个成员col1,col2和col3的类,并列出该类并使用它。
class MyRow
{
public {col1datatype} col1;
public {col2DataType} col2;
public {col3DataType} col3;
}
您的功能
List<MyRow> lstRows = new ArrayList<MyRow>();
for (int i= 0; i<= 5; i++)
{
for (int j= 0; j<= 5; j++)
{
MyRow row = new MyRow();
row.col1 = value1;
row.col2 = value2;
row.col3 = value3;
llstRows.Add(row);
}
}
然后在数据库事务中相应地使用lstRows。
答案 2 :(得分:0)
我建议以下流程:
这样,您将在数据库中拥有每一行,就像您稍后需要在前端列出它们一样。此外,进行任何数据搜索也将更加容易。
答案 3 :(得分:0)
在这种情况下,我建议将其序列化为Json并将其存储在列中(因为您将这种方法用于列表的列)。
从数据库检索数据时,只需将其从Json反序列化为List对象。
例如,Entity Framework在.NET中所做的相同
答案 4 :(得分:0)
如果所有列表包含相同的长度,则为所有ArrayList设置一个通用函数,并使用最大大小ArrayList的循环对其进行迭代:
它应该像:
for(int i=0;i<lList1.size();i++) {
String insertQueryMainProduct = "INSERT INTO " + "" + tableName + "" + "(ColumnOneName,ColumnSecondName,ColumnThirdName)" + " VALUES('" +lList1.get(i)+ "', '" + lList2.get(i)+ "', '" + lList3.get(i)+ "')";
System.out.println("Query: " + insertQueryMainProduct);
statement.executeUpdate(insertQueryMainProduct);
希望对您有帮助