用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

我正在用Java构建一个从MySQL数据库检索数据的应用程序。执行查询后,我将获得一个结果集,并执行以下操作以提取记录:

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)的工作方式类似于“按引用传递”,不复制对象,只提供对它的引用?谢谢,这解决了我的问题:)