![](/img/trans.png)
[英]Retrieving records from MySQL DB returns Null <Beginner question>
[英]Retrieving records from MySQL in Java
我正在用 Java 构建一个应用程序来从 MySQL 数据库中检索数据。 执行查询后,我得到一个 ResultSet 并执行以下操作以提取记录:
while (rs.next())
{
for (int column = 1; column <= rm.getColumnCount(); column++) {
row.add(rs.getObject(column));
}
result.add(row.toString());
row.clear();
}
其中rs = ResultSet 和rm = ResultSetMetaData
问题是我必须做result.add(row.toString()); 而不仅仅是result.add(row); (我想用它创建一个二维 ArrayList)。 否则我会得到空的结果。
我试过把row.clear(); 在开始时,在for循环之前,但这导致我的所有结果都被最后一条记录的多个实例填充。 就像直到最后,当它等于最后一条记录时才将行添加到结果中。 在将 ArrayList行作为元素添加到另一个 ArrayList 之前,我是否需要“提交”它? 如果是这样,如何? 另外,出于好奇,为什么.toString() 的工作方式不同?
通过添加 row.toString(),您正在创建一个新的 String 对象以添加到结果中。
另一方面,通过添加行,您将相同的对象添加到结果中,因此,每次调用 row.clear() 时,它都会清空结果中的所有行。
你应该做的是在for循环之前创建一个新的行对象,不要做row.clear()。 下面是一个例子。
while (rs.next())
{
row = new ArrayList();
for (int column = 1; column <= rm.getColumnCount(); column++) {
row.add(rs.getObject(column));
}
result.add(row);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.