gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:13:56 25 4
gpt4 key购买 nike

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

任何帮助将不胜感激。

最佳答案

您的问题出在这部分,尽管它是一个相对简单的修复:

            int rows=tmodel.getRowCount();
while(rows>0)
{
tmodel.removeRow(0);
}
jTable1.setModel(tmodel);

你想做的是:

            while(tmodel.getRowCount()>0)
{
tmodel.removeRow(0);
}
jTable1.setModel(tmodel);

因为您将变量设置为该方法返回的常量值,这意味着当您继续删除行时它不会更新

关于java - 将 jTable 与 MySQL 数据库连接时,java net beans IDE 8.0 中出现数组越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23813626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com