将数据添加到列表 - JDBC

时间:2015-08-12 14:28:15

标签: java list loops jdbc

我想将我在数据库中拥有的所有数据放在ArrayList中。

        ResultSet rs = callableStatement.executeQuery();
        ArrayList<Object> list = new ArrayList<Object>();
        List<ArrayList> table = null;

        while (rs.next()) {

                for (int i = 1; i < rs.getMetaData().getColumnCount() + 1; i++) {
                System.out.print(" " + rs.getMetaData().getColumnName(i) + "=" + rs.getObject(i));

                    String data = rs.getString(i);
                    list.add(data);

                }
                table.add(list);
                System.err.println(table);
            }

我正在打印数据库中的所有数据。我的问题是我得到了

  java.lang.NullPointerException

2 个答案:

答案 0 :(得分:1)

也许,你应该这样做,在你的代码中,你只需要在list

中重复打印第九个元素
while (rs.next()) {
    for (int i = 1; i < rs.getMetaData().getColumnCount() + 1; i++) {
        System.out.print(" " + rs.getMetaData().getColumnName(i) + "=" + rs.getObject(i));
        String data = rs.getString(i);
        list.add(data);

    }
}

for (Object obj : list) {
    System.out.println(obj.toString())
}

如果要打印第9列,则应执行以下操作

while (rs.next()) {
    System.out.println(rs.getString(9))
}

    while (rs.next()) {
    for (int i = 1; i < rs.getMetaData().getColumnCount() + 1; i++) {
        System.out.print(" " + rs.getMetaData().getColumnName(i) + "=" + (i));
        if (i == 9) {
            String data = rs.getString(i);
            list.add(data);rs.getObject
        }
    }
}

for (Object obj : list) {
    System.out.println(obj.toString())
}

答案 1 :(得分:1)

  

我正在打印数据库中的所有数据。我的问题是我得到了

     

显示java.lang.NullPointerException

List<ArrayList> table = null;

后跟

table.add(list);

没有初始table喜欢

table = new ArrayList<ArrayList>(); //Consider some rework here ;)

将导致npe