1

我想通过使用 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+"'" );
     }
   }

这是 jTable

这是MySql表,应该和jTable一样

4

2 回答 2

2
  • 请阅读有关 JTable 的 Oracle 教程

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

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

  • 创建数组从数据库行填充数据并将此数组作为新行添加到 XxxTableModel

  • 搜索ResultSetTableModelTableFromDatabase

于 2013-03-24T14:59:45.530 回答
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);
                }

            }

        }
于 2016-09-26T05:44:05.707 回答