gpt4 book ai didi

java - 如果我将结果集传递给表模型,如何在 MyTableModel 中使用 setValueAt()

转载 作者:行者123 更新时间:2023-12-01 09:04:52 26 4
gpt4 key购买 nike

我有一个 MyTableModel,其中我将结果集作为参数传递给构造函数。

import javax.swing.table.*;
import java.sql.*;
class MyTableModel extends AbstractTableModel {
ResultSet rs;
ResultSetMetaData rsmd;
MyTableModel(ResultSet rs){
try{
this.rs=rs;
rsmd=rs.getMetaData();
}
catch(Exception e) {
System.out.println(e);
}
}
public int getColumnCount(){
try{
return rsmd.getColumnCount();
}
catch(Exception e){
return -1;
}
}
public String getColumnName(int i){
try{
return rsmd.getColumnName(i+1);
}
catch(Exception e){
return null;
}
}
public int getRowCount(){
try{
rs.last();
return rs.getRow();
}
catch(Exception e){
return -1;
}
}
public Object getValueAt(int i,int j){
try{
rs.absolute(i+1);
return rs.getObject(j+1);
}
catch(Exception e){
return null;
}
}

public boolean isCellEditable(int i,int j){
return true;
}

public void setValueAt(Object value, int i, int j){
}

}

现在我如何使用 setValueAt() 方法来设置特定的单元格。设置单元格的值后,我想更新数据库中的此数据,请告诉我如何更新此数据。

最佳答案

您不应该使用 ResultSet 作为 TableModel 的后台存储,因为需要关闭 ResultSet 以释放数据库/连接资源。

相反,您应该将 ResultSet 中每个元素的内容复制到 String[],并将每一行添加到 List 。然后使用该 List 作为 TableModel 的参数。

关于java - 如果我将结果集传递给表模型,如何在 MyTableModel 中使用 setValueAt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41364156/

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