Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java net beans IDE 8.0中连接jTable和MySQL数据库时出现数组越界异常_Java_Mysql_Arrays_Jtable_Database Connection - Fatal编程技术网

java net beans IDE 8.0中连接jTable和MySQL数据库时出现数组越界异常

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

我有一个包含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);
}

任何帮助都将不胜感激。

由于您从不更新循环中的
,因此
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);
因为您正在将一个变量设置为该方法返回的常量值,这意味着在继续删除行时它不会被更新