用Java从MySQL中检索记录
我正在用Java构建一个从MySQL数据库检索数据的应用程序。执行查询后,我将获得一个结果集,并执行以下操作以提取记录:用Java从MySQL中检索记录,java,mysql,arraylist,Java,Mysql,Arraylist,我正在用Java构建一个从MySQL数据库检索数据的应用程序。执行查询后,我将获得一个结果集,并执行以下操作以提取记录: while (rs.next()) { for (int column = 1; column <= rm.getColumnCount(); column++) { row.add(rs.getObject(column)); } result.ad
while (rs.next())
{
for (int column = 1; column <= rm.getColumnCount(); column++) {
row.add(rs.getObject(column));
}
result.add(row.toString());
row.clear();
}
while(rs.next())
{
对于(int column=1;column,通过添加row.toString(),您正在创建一个新的String对象以添加到结果中
另一方面,通过添加行,您将相同的对象添加到结果中,因此,每次调用row.clear()时,它都会清空结果中的所有行
您应该做的是在for循环之前创建一个新的row对象,而不要执行row.clear()
while (rs.next())
{
row = new ArrayList();
for (int column = 1; column <= rm.getColumnCount(); column++) {
row.add(rs.getObject(column));
}
result.add(row);
}
while(rs.next())
{
行=新的ArrayList();
for(int column=1;column OK,所以基本上是result.add(row)的工作方式类似于“按引用传递”,不复制对象,只提供对它的引用?谢谢,这解决了我的问题:)