java net beans IDE 8.0中连接jTable和MySQL数据库时出现数组越界异常
我有一个包含7列的表,我正在尝试将我的数据库与之连接,以便从数据库接收数据并在表中显示。当您第一次按下按钮时,代码工作正常,但当您第二次按下按钮时,表格变为空白,我得到以下错误:java net beans IDE 8.0中连接jTable和MySQL数据库时出现数组越界异常,java,mysql,arrays,jtable,database-connection,Java,Mysql,Arrays,Jtable,Database Connection,我有一个包含7列的表,我正在尝试将我的数据库与之连接,以便从数据库接收数据并在表中显示。当您第一次按下按钮时,代码工作正常,但当您第二次按下按钮时,表格变为空白,我得到以下错误: java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 我在下面给出了按钮ActionPerformed方法的代码 try { Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverMa
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);
}
任何帮助都将不胜感激。由于您从不更新循环中的
行
,因此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);
因为您正在将一个变量设置为该方法返回的常量值,这意味着在继续删除行时它不会被更新