【问题标题】:Modifying Records into Database Through Jtable通过Jtable修改记录到数据库
【发布时间】:2012-02-27 18:30:11
【问题描述】:

我使用 Netbeans 7.1 创建了一个 Jtable。 该表创建了一个默认模型,如下所示

table.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null}
        },
        new String [] {
            "Title 1", "Title 2", "Title 3", "Title 4"
        }
    ));

我还添加了以下代码行来填充 Sqlite 数据库中的数据。

public void tabl()
{
  try
  {
    stmt=conn.createStatement();
    String sql2="SELECT * FROM students";
    rs=stmt.executeQuery(sql2);
    int n=0;
    while(rs.next())
    {  

      table.setValueAt(rs.getString(1),n,0);
      table.setValueAt(rs.getString(2),n,1);
      table.setValueAt(rs.getString(3),n,2);
      table.setValueAt(rs.getString(4),n,3);
      n++;
    }
  }
  catch(SQLException e)
  {

  }
}

我的测验是我现在如何使JTable 能够更新和删除记录...使用默认模型。我是表模型的新手。

【问题讨论】:

标签: java sql swing jtable resultset


【解决方案1】:
DefaultTableModel dmReset = (DefaultTableModel) table.getModel();
try {
    stmt=conn.createStatement();
    String sql2="SELECT * FROM students";
    rs=stmt.executeQuery(sql2);
    while (rs.next()) {
          Vector v = new Vector();
          v.add(rs.getString(1));
          v.add(rs.getString(2));
          v.add(rs.getString(3));
          v.add(rs.getString(4));
          dmReset.addRow(v);
          }
    } catch (Exception e) {
          System.err.println(e.toString());
    }

注意:在rs.getXXX() 方法中使用完整的列标题而不是列索引。 有关TableModel 的更多详细信息,您可以参考this document.

如果您想获取其他类型的数据,例如 Float、int 等...可以添加一个 switch case, 你可以找到例子here

【讨论】:

    【解决方案2】:

    你必须创建这样的语句

    conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                        ResultSet.CONCUR_UPDATABLE);
    

    还要注意 select * FROM table;总是返回只读结果集。而是查询应该是 select column1,column FROM table;

    【讨论】:

    • @peter 如何使用我刚刚创建的按钮更新更改?
    猜你喜欢
    • 2011-04-01
    • 2012-08-28
    • 2016-01-13
    • 2011-01-09
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多