[英]java.sql.SQLException: After end of result set error in mysql
我試圖從數據庫中讀取數據並將ResultSet
存儲在ArrayList
。 但是,我收到錯誤java.sql.SQLException: After end of result set
打印數組列表時java.sql.SQLException: After end of result set
。 我檢查了是否沒有根據此鏈接兩次調用result.next()
。 有人有更好的方法來存儲結果集嗎? 然后,我可以在所需的位置將其打印出來。
Statement stmt=con.createStatement();
ResultSet rsVehicle=stmt.executeQuery("select * from vehicle");
while(rsVehicle.next()) {
vehicleList.add(rsVehicle);
}
System.out.println(vehicleList.size());
for(int i=0;i<vehicleList.size();i++) {
System.out.println(vehicleList.get(i).getInt(1)+" "+vehicleList.get(i).getString(2)+" "+vehicleList.get(i).getString(3)+" "+
vehicleList.get(i).getString(4)+" "+vehicleList.get(i).getString(5)+" "+vehicleList.get(i).getString(6)+" "+
vehicleList.get(i).getString(7)+" "+vehicleList.get(i).getString(8)+" "+vehicleList.get(i).getString(9)+" "+
vehicleList.get(i).getString(10)+" "+vehicleList.get(i).getString(11)+" "+vehicleList.get(i).getString(12)+" "+
vehicleList.get(i).getString(13)+" "+vehicleList.get(i).getString(14)+" "+vehicleList.get(i).getString(15));
}
PreparedStatement ps;
ps =con.prepareStatement("SELECT * from job WHERE date = ?");
ps.setString(1, date);
ResultSet rsJob=ps.executeQuery();
while(rsJob.next()) {
jobList.add(rsJob);
}
System.out.println(jobList.size());
for(int i=0;i<jobList.size();i++) {
System.out.println(jobList.get(i).getInt(1)+" "+jobList.get(i).getString(2)+" "+jobList.get(i).getString(3)+" "+
jobList.get(i).getString(4)+" "+jobList.get(i).getString(5)+" "+jobList.get(i).getString(6)+" "+
jobList.get(i).getString(7)+" "+jobList.get(i).getString(8)+" "+jobList.get(i).getString(9)+" "+
jobList.get(i).getString(10)+" "+jobList.get(i).getString(11)+" "+jobList.get(i).getString(12)+" "+
jobList.get(i).getString(13)+" "+jobList.get(i).getString(14)+" "+jobList.get(i).getString(15));
}
在代碼中,將結果集添加到列表中,然后遍歷該列表以獲取數據,但是正確的流程是:
該代碼應類似於:
// Create a new list of vehicles
List<Vehicle> vehicleList = new ArrayList<>();
Statement stmt=con.createStatement();
ResultSet rsVehicle=stmt.executeQuery("select * from vehicle");
while(rsVehicle.next()) {
// Create a new vehicle for each record returned from the query
Vehicle vehicle = new Vehicle();
// Set to the vehicle each property taken from that record
vehicle.setBrand(rsVehicle.getString(1));
...
// Add that vehicle to the list
vehicleList.add(vehicle);
}
...
// Iterate the list and print each field you need
for (Vehicle vehicle: vehicleList) {
// PRint each vehicle
System.out.println("Vechicle brand: " + vehicle.getBrand());
}
注意:如果您將Vehicle類的方法重新定義為toString
,則可以直接調用System.out.println(vehicle);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.