【问题标题】:Save edited cell/s from JTable to database将编辑过的单元格从 JTable 保存到数据库
【发布时间】:2013-08-23 08:42:30
【问题描述】:

JTable 的新手。今天刚入。 所以我能够将我的数据从数据库填充到 JTable 中。 我目前正在将编辑的单元格保存到数据库中。

我读过很多文章。但是我没找到

只需一个按钮然后保存!

这是我的代码

public class DBEngine {
Connection con = IQConnection.getConnectionMgrInstance().getConnection();
PreparedStatement pstm = null;
ResultSet rs = null;

public Vector getEmployee() throws Exception{
    Vector<Vector<String>> employeeVector = new Vector<Vector<String>>();

    try {          

        if (con != null) {

           String query = "SELECT * FROM OGG.TBLSAMPLE";


            try {
                pstm = con.prepareStatement(query);
                rs = pstm.executeQuery();


                while(rs.next()) {
                   Vector<String> employee = new Vector<String>();
                    employee.add(rs.getString(1)); //Empid
                    employee.add(rs.getString(2)); //name
                    employee.add(rs.getString(3)); //position
                    employee.add(rs.getString(4)); //department
                    employeeVector.add(employee);
                }   



            } catch (Exception e) {
                e.printStackTrace();
            }
        }else{
            //lbl_err1.setText("Error");
        }

    } catch (Exception e) {

        e.printStackTrace();
        //flag = false;
        //lbl_err1.setText("Failed!");
    } finally {

        try{
            if(rs != null){
                rs.close();
            }
        }catch(Exception e){

        }

        try{
            if(pstm != null){
                pstm.close();
            }
        }catch(Exception e){

        }    
    }
   return employeeVector;
}
}

谢谢!

【问题讨论】:

  • 保存到数据库的代码在哪里?
  • 目前没有。仍在研究并希望找到一个这样做的例子。
  • @javaBeginner 我的代码有问题吗?
  • 我没有找到任何插入代码,所以我刚刚发布了一种插入 mytable(表名)的方法,并且在我的表中有一个字段 ID。这是插入的方法。试试这使用你自己的字段名和表名。如果你发现任何问题,那么你可以问
  • @user2510841 我强烈建议您先完成关于 Swing 和 JDBC 的Java tutorials。在那里你会发现所有关于按钮和数据库更新的信息。阅读它,用你自己的代码尝试一下,如果你遇到了特定的问题,请回到这里。

标签: java swing netbeans jdbc jtable


【解决方案1】:

像这样使用preparedstatement插入数据库

PreparedStatement pt=con.prepareStatement("insert into mytable values(?) ");
pt.setString(1,ID);
int result=pt.executeUpdate();

如果要更新就用这种方式

 PreparedStatement pt=con.prepareStatement("update mytable set column_name=? ");
    pt.setString(1,ID);
    int result=pt.executeUpdate();

【讨论】:

  • 如果您只想更新数据库表中的现有行而不是插入新行,请使用 SQL update 语句。
  • PreparedStatement ps = con.prepareStatement("UPDATE SAMPLE SET CLIENT = ?, PARTNER = ?,price = ? WHERE id = "+row); ps.setString(1, (String) jTblSample.getValueAt(row, 1)); ps.setInt(2, (Integer) jTblSample.getValueAt(row, 2)); ps.setInt(3, (Integer) jTblSample.getValueAt(row, 3)); ps.executeUpdate();
  • pt.setString(1,ID);
  • @user2510841 Stackoverflow 问题和答案供将来使用。假设将来另一个用户有与您的问题相同的查询,那么他/她可以直接复制我的答案。所以根据您的问题,我的答案非常适合它。现在您有另一个关于 UPDATE 的查询,所以发布另一个问题。不要问所有查询一个。
  • 好的,谢谢。在我的问题中,它清楚地说明了保存编辑的单元格,而不是在表中插入值。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
相关资源
最近更新 更多