Chinaunix首页 | 论坛 | 博客
  • 博客访问: 480344
  • 博文数量: 95
  • 博客积分: 2117
  • 博客等级: 大尉
  • 技术积分: 2301
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-16 21:10
个人简介

辽宁铁岭人,现居大连。1970年生。 先后供职于 中国国际海运网、大连学堂科技、大连华仁视线网络科技有限公司、大连中科海云科技有限公司,任职技术总监。 精通PHP、JAVA、Javascript、HTML、CSS等网络编程技术及Linux操作系统。 精通面向对象编程、设计模式、重构及互联网产品设计。

文章分类

全部博文(95)

文章存档

2013年(31)

2012年(2)

2011年(34)

2010年(25)

2008年(3)

分类: Java

2012-10-05 16:20:57


点击(此处)折叠或打开

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