gpt4 book ai didi

java - JTable java netbeans 上的记录未从数据库加载

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

我试图在加载框架时显示 JTable 上的记录,但记录没有显示。这是我到目前为止所尝试过的:公共(public)无效负载() {

    try {
Connection con1;
PreparedStatement insert;
Class.forName("com.mysql.jdbc.Driver");
con1 = DriverManager.getConnection("jdbc:mysql://localhost/javapos","root","");
insert = con1.prepareStatement("SELECT name,status FROM category");
ResultSet Rs = insert.executeQuery();
while(Rs.next()){
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
String name = Rs.getString("name");
String status = Rs.getString("status");
model.addRow(new Object[]{name,status });
}
jTable1.setModel(model);
} catch (Exception e) {

System.out.println("Failed " + e);

}
}

最佳答案

我的猜测是,因为您的代码不应该编译,但似乎可以编译(毕竟您看到的是一个空的 JTable)。

您已在代码段之前声明了一个 DefaultTableModel 模型

我怎么知道呢?使用您提出的代码 jTable1.setModel(model); 无法编译,因为 model 不存在于范围内(循环外部)。

while(Rs.next()){
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
String name = Rs.getString("name");
String status = Rs.getString("status");
model.addRow(new Object[]{name,status });
}
jTable1.setModel(model);

编译错误:

"model" cannot be resolved to a variable.

我猜你之前已经在某个地方声明过了。在循环中,您在不同的范围内声明一个新的循环,隐藏原始的循环。在最后一个 model 实例中,您插入行。
但在循环之后,您设置了第一个在 jtable 中没有行的 model

这是所发生情况的基本示例,在这里我将重命名两个实例,但在您的代码中,model1model2 被命名为 model

model1 = new Model();
while(rs.next()){
model2 = new Model();
model2.addRow(...);
}
table.setModel(model1);

快速更正,删除循环中的声明。

DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
while(Rs.next()){
//DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
String name = Rs.getString("name");
String status = Rs.getString("status");
model.addRow(new Object[]{name,status });
}
jtable1.setModel(model);

声明一个TableModel

关于java - JTable java netbeans 上的记录未从数据库加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54193850/

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