gpt4 book ai didi

java - JTable 不显示新插入的行/数据

转载 作者:行者123 更新时间:2023-11-30 05:55:26 26 4
gpt4 key购买 nike

我有一个 JTable,我按如下方式填充表:

jTable_Std_info.setModel(DBControler.getALLStudents());

下面是一个名为 DBControler 的类中的静态方法,它从数据库 (Oracle) 中检索所有数据。

public static DefaultTableModel getALLStudents() throws SQLException, Exception {

DefaultTableModel tableModel = new DefaultTableModel();
Vector rows = new Vector();
Vector columns = new Vector();

try {
conn = geConnection();
cst = conn.prepareCall("{? = call std_getInfoFunc}");
cst.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
cst.execute();
res = (ResultSet) cst.getObject(1);
System.out.print(res);
ResultSetMetaData rsm = res.getMetaData();

for (int i = 1; i <= rsm.getColumnCount(); i++) {
columns.addElement(rsm.getColumnName(i));
}

int row = 0;
while (res.next()) {
Vector vRow = new Vector(); //to store the current row
//System.out.println("Row " +row+"\n");
for (int i = 1; i <= rsm.getColumnCount(); i++) {
String columnValue = res.getString(i);
vRow.addElement(columnValue);
}
row += 1;
rows.addElement(vRow);
}
tableModel.setDataVector(rows, columns);

} catch (SQLException e) {
e.printStackTrace();
} finally {
res.close();
conn.close();
}
return tableModel;
}

到目前为止一切正常,但问题是如果我在数据库中插入一条新记录,JTable 不会获取新插入的行/数据。为什么会这样?我该如何解决这个问题?

更新:当我提交新插入时,它正在检索数据。那么我每次更新都必须提交吗?或者还有其他方法可以做到这一点吗?

最佳答案

我认为您正在寻找 Oracle 内置 Database Change Notification , 不确定 Oracle 的免费版本是否可以访问,如果不能那么没关系,对于 MySQL 是否有两个或三个用于 Java JDBC 的类似 API

关于java - JTable 不显示新插入的行/数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8289240/

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