将Jtable值更新为MySql表

时间:2013-03-24 14:18:38

标签: java mysql swing jtable netbeans-7

我想使用jtable数据更新MySql。我在mysql中有6列(句点,星期一,星期二,星期五,星期四,星期五)。在jtable中,我有与mysql相同的表。在mysql中,我已经给出了句点值(1,2,3,4)。

Connection con = Driver.connect();
 for (int i = 0; i < 4; i++) {
   for(int j=1;j<=4;j++){
     Handler.setData(con, "update sem1 set mon='"+jTable1.getValueAt(i, 1)+"' where
     periods='"+j+"'" );
     Handler.setData(con, "update sem1 set tue='"+jTable1.getValueAt(i, 2)+"' where
     periods='"+j+"'" );
     Handler.setData(con, "update sem1 set wed='"+jTable1.getValueAt(i, 3)+"' where
     periods='"+j+"'" );
     Handler.setData(con, "update sem1 set thu='"+jTable1.getValueAt(i, 4)+"' where
     periods='"+j+"'" );
     Handler.setData(con, "update sem1 set Fri='"+jTable1.getValueAt(i, 5)+"' where
     periods='"+j+"'" );
     }
   }

This is the jTable

This is the MySql table.It should be the same as jTable

2 个答案:

答案 0 :(得分:2)

  • 请阅读Oracle Tutorial about JTable

  • 数据库中的表格在Swing中具有JTable的类似结构,

  • (之前不知道代码)ResultSet中的每个循环只返回一行,其顺序与SQL Query中定义的相同,

  • 创建数组从数据库行填充数据,并将此数组添加为new row to the XxxTableModel

  • 搜索ResultSetTableModelTableFromDatabase

答案 1 :(得分:0)

此代码应适用于所有表(无论jTable有多少行或列)。只需将'TableName'替换为您希望在mysql中更新的表。

此处'否'是表格的主键。

DefaultTableModel dtm01 = (DefaultTableModel) jTable1.getModel();

        String sd0 = null;
        for (int i = 1; i < dtm01.getColumnCount(); i++) {

            //  System.out.println(dtm01.getColumnName(1));
            for (int j = 0; j < dtm01.getRowCount(); j++) {
                try {
                    sd0 = dtm01.getValueAt(j, i).toString();

                    String sql = "update TableName set "+dtm01.getColumnName(i)+"='"+sd0+"' where No='"+dtm01.getValueAt(j, 0).toString()+"'";

                    pst=con.prepareStatement(sql);
                    pst.execute();
                    System.out.println(sql);
                } catch (SQLException ex) {
                    // Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
                }

            }

        }