使用RS.Next()加载Java数组,无论如何都会抛出Null指针错误.使用控制台检查



我有一个非常简单的表。

╔════╦═══════╗
║ id ║ title ║
╠════╬═══════╣
║ 1  ║ cow   ║
║ 2  ║ duck  ║
╚════╩═══════╝

id是int

标题是文本

我试图用这两个寄存器填充数组。

收集类具有(int,string)

的构造函数

我的代码:

collection[] co=null;
String query="SELECT * FROM collection";
   ps=conn.prepareStatement(query);
   rs=ps.executeQuery();
   int counter=0;
        while(rs.next()) {
            co[counter]=new colleccion(rs.getInt("id"),rs.getString("title"));
            System.out.println(rs.getInt("id"));
            System.out.println(rs.getString("title"));
            counter++;
        }

system.out.println的工作正常,值正确显示。但是,它一旦到达数组线就会引发异常。

也尝试使用列号(1和2),但相同。

请帮助。

在这里:

collection[] co=null;
[...]
co[counter]=...

您正在尝试为null的数组分配一个值。

您必须在将值放入它之前初始化数组:collection[] co= new collection[42]

,但您可能不知道所需的大小先验,您可能需要将项目存储在List中。

List<collection> co = new ArrayList<>();
co.add(new collection(rs.getInt("id"),rs.getString("title")));

NOTE collection是一个班级的可怕名称。您将更改它。班级名称应以大写字母开始,并且Collection已被捕获(并广泛使用)。

相关内容

  • 没有找到相关文章

最新更新