将所有数据集从数据库表插入到 jTable Java 中



我正在尝试从我的数据库中将所有数据集选择到jTable中(单击按钮后(。

我尝试了这样的事情:

public Object getValueAt(int rowIndex, int columnIndex) throws SQLException { java.sql.Connection con; con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/lessonstbl","root",""); String query =" SELECT * FROM lessons"; PreparedStatement statement = con.prepareStatement(query); ResultSet rs = statement.executeQuery(query);

try {
rs.absolute(rowIndex + 1);
switch (columnIndex) {
case 0: 
return rs.getString(1);
case 1:
return rs.getString(2);
case 2:
return rs.getInt(3);
case 3:
return rs.getObject(4).toString();
case 4:
return rs.getObject(5).toString();
default:
return null;
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());

.. 但这行不通。 提前感谢一切

public Object getValueAt(int rowIndex, int columnIndex) throws SQLException {

在我看来,您正在尝试覆盖表模型的getValueAt(...)方法。由于以下几个原因,这行不通:

  1. 您正在通过添加引发的 SQLExeption 来更改方法签名,因此您不会重写 TableModel 的默认实现,而是创建一个不被调用的新方法。

  2. 在getVaueAt((方法中进行SQL查询是一个坏主意。此方法应该非常有效,因为每次需要绘制表中的单元格时都会调用此方法。

因此,正确的解决方案是在创建表时执行 SQL 查询,并在类开始时将 SQL 查询中的所有数据加载到 TableModel 中。这意味着您需要遍历ResultSet的所有行和列才能将数据添加到TableModel

查看在数据库中的表中找到的Table From DataBase Example。或者,您可以在论坛中搜索关键字为"ResultSet and JTable"的其他示例。

最新更新