我有一个非常简单的表。
╔════╦═══════╗
║ 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
已被捕获(并广泛使用)。