Java 通过Jtable将记录修改到数据库中
我使用Netbeans 7.1创建了一个Jtable。 该表创建了一个默认模型,如下所示Java 通过Jtable将记录修改到数据库中,java,sql,swing,jtable,resultset,Java,Sql,Swing,Jtable,Resultset,我使用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},
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
能够使用默认模型更新和删除记录。我对表格模型不熟悉。您必须创建这样的语句
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
还要注意,从表中选择*;始终返回只读结果集。相反,查询应该是从表中选择column1、columnn
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
的更多详细信息,请参阅
如果您想获取其他类型的数据,如Float、int等。。。可随此添加一个开关盒,
您可以找到示例。@Xcoder:write
rs.getXXX(“列标题”)
。它将删除由于数据库表或视图操作而导致的进一步错误。@peter我如何使用我刚刚创建的按钮更新更改。?