我想使用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+"'" );
}
}
答案 0 :(得分:2)
数据库中的表格在Swing中具有JTable的类似结构,
(之前不知道代码)ResultSet中的每个循环只返回一行,其顺序与SQL Query中定义的相同,
创建数组从数据库行填充数据,并将此数组添加为new row to the XxxTableModel
搜索ResultSetTableModel
或TableFromDatabase
答案 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);
}
}
}