讀取時,當我執行的代碼這顯示錯誤日誌「不允許操作後結果集關閉」從數據庫
java.sql.SQLException中:不允許操作結果集在com.mysql關閉
後.jdbc.SQLError.createSQLException(SQLError.java:964)
在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886 )
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
在com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:743)
在com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:6301)
在reportpdf.ReportPDF.main(ReportPDF.java: 84)
這裏是我的代碼:
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import com.mysql.jdbc.Connection;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.time.LocalDate;
import java.util.Date;
public class ReportPDF {
private static Font headerFontBold = new Font(Font.FontFamily.UNDEFINED,14,Font.BOLD);
private static Font headerFont = new Font(Font.FontFamily.UNDEFINED,12);
private static Font titleFont = new Font(Font.FontFamily.UNDEFINED,12,Font.BOLD);
private static LocalDate localDate = LocalDate.now();
private static String output = ""+localDate;
public static void main(String[] args) {
Document document = new Document();
try {
PdfWriter.getInstance(document,new FileOutputStream("Inventory Report "+output+".pdf"));
document.open();
Paragraph para1 = new Paragraph("Company Name", headerFontBold);
para1.setAlignment(Paragraph.ALIGN_CENTER);
para1.setSpacingAfter(2);
document.add(para1);
Paragraph para2 = new Paragraph("Address", headerFont);
para2.setAlignment(Paragraph.ALIGN_CENTER);
para2.setSpacingAfter(2);
document.add(para2);
Paragraph para3 = new Paragraph("Inventory Report", headerFont);
para3.setAlignment(Paragraph.ALIGN_CENTER);
para3.setSpacingAfter(20);
document.add(para3);
Paragraph para4 = new Paragraph("Inventory Report as of: "+ new Date(), titleFont);
para4.setAlignment(Paragraph.ALIGN_LEFT);
para4.setSpacingAfter(2);
document.add(para4);
Paragraph para5 = new Paragraph("Generated by: ", titleFont);
para5.setAlignment(Paragraph.ALIGN_LEFT);
para5.setSpacingAfter(2);
document.add(para5);
Paragraph para6 = new Paragraph("Generated for date/s: ", titleFont);
para6.setAlignment(Paragraph.ALIGN_LEFT);
para6.setSpacingAfter(20);
document.add(para6);
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con=(Connection) DriverManager.getConnection ("jdbc:mysql://localhost:3306/pdfreport?autoReconnect=true&useSSL=false", "root", "root");
Statement st = (Statement) con.createStatement();
ResultSet rs = st.executeQuery("select id, firstName, lastName, emailAddress, birthday, age from pdfreport.registration;");
PdfPTable recordTable = new PdfPTable(6);
PdfPCell recordCell;
while (rs.next()) {
String id = rs.getString("id");
recordCell=new PdfPCell(new Phrase(id));
recordTable.addCell(recordCell);
String firstName=rs.getString("firstName");
recordCell=new PdfPCell(new Phrase(firstName));
recordTable.addCell(recordCell);
String lastName=rs.getString("lastName");
recordCell=new PdfPCell(new Phrase(lastName));
recordTable.addCell(recordCell);
String emailAddress=rs.getString("emailAddress");
recordCell=new PdfPCell(new Phrase(emailAddress));
recordTable.addCell(recordCell);
String birthday=rs.getString("birthday");
recordCell=new PdfPCell(new Phrase(birthday));
recordTable.addCell(recordCell);
String age=rs.getString("age");
recordCell=new PdfPCell(new Phrase(age));
recordTable.addCell(recordCell);
document.add(recordTable);
rs.close();
st.close();
con.close();
document.close();
}
}
catch (ClassNotFoundException | IllegalAccessException | InstantiationException | SQLException e){
e.printStackTrace();
}
document.close();
} catch (DocumentException | FileNotFoundException e) {
e.printStackTrace();
}
}
}
我知道什麼,或者我認爲錯誤是在檢索數據庫中的條目,但我真的不知道究竟是什麼。我一直在嘗試解決方案,而且似乎無法在我的腦海中得到它。謝謝你提前
我試過這個非常感謝你! –