[英]Array Out Of Bounds exception in java net beans IDE 8.0 while connecting jTable with MySQL database
我有一個包含7列的表,並且試圖將數據庫與其連接,以便從數據庫接收數據並將其顯示在表中。 第一次按下按鈕時,代碼工作正常,但是第二次按下時,表變為空白,我得到此錯誤:
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
我在下面給出了按鈕的ActionPerformed方法的代碼。
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name","root","admin123");
String query="SELECT * FROM tablename;";
Statement st = con.createStatement();
ResultSet rs= st.executeQuery(query);
DefaultTableModel tmodel = (DefaultTableModel) jTable1.getModel();
int rows=tmodel.getRowCount();
while(rows>0)
{
tmodel.removeRow(0);
}
jTable1.setModel(tmodel);
while(rs.next())
{
tmodel.addRow(new Object[] {rs.getInt("column1"),rs.getString("Column2"),rs.getString("Column3"),rs.getInt("Column4"),rs.getString("Column5"),rs.getString("Column6"),rs.getString("Column7")});
jTable1.setModel(tmodel);
}
}
catch(Exception ex)
{
System.out.println("Eception: "+ex);
}
任何幫助將不勝感激。
由於您從不更新循環內的rows
,因此while
會一直持續下去,直到到達異常為止。
while(rows>0)
{
tmodel.removeRow(0);
}
當然, setRowsCount()
會更簡單,並且更不會出錯。
順便說一句:如果您指出哪一行是引發異常的行,對您的幫助會更加容易。
您的問題出在這部分,盡管它是一個相對簡單的解決方法:
int rows=tmodel.getRowCount();
while(rows>0)
{
tmodel.removeRow(0);
}
jTable1.setModel(tmodel);
您想要做的是:
while(tmodel.getRowCount()>0)
{
tmodel.removeRow(0);
}
jTable1.setModel(tmodel);
因為您正在將變量設置為方法返回的常量值,這意味着在繼續刪除行時不會對其進行更新
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.