- @Override
- public void setValueAt(Object value, int rowIndex, int columnIndex)
- {
- try {
- cacheRowset.absolute(rowIndex + 1);
-
- Connection conn = Db.DB.getConnection();
- Statement stat = conn.createStatement();
- String sqlCommand = "UPDATE production SET `" + columns[columnIndex] + "`='" + value + "' WHERE `ID` = '" + cacheRowset.getObject(1) + "'";
- stat.executeUpdate(sqlCommand);
- Db.DB.getConnection().commit();
-
- cacheRowset.updateObject(columnIndex + 1, value);
- } catch (SQLException e) {
- System.out.println(e.getStackTrace());
- System.out.println(e.getMessage());
- }
- }
此段代码的第5行、7到11行、13行,各自成为一段,这三段不能互换。
主要原因是第一段需要移动行集,第二段需要更新源数据库,第三段用来更新行集。
不能互换的原因是,第一段就不用说明了,不移动行集,就无法正确获取要修改的行的数据,也无法正确更新行集。
第二段和第三段不能互换是因为如果先更新了行集,一旦源数据库更新失败,就造成了行集与数据库不一致。
而且如果更改的是ID的话,就会直接出现异常错误。
阅读(1230) | 评论(0) | 转发(0) |