可能性不大,多个jsp页面在同时运行这段程序是如何同步。
当然你可以在服务段设一个同步令牌,页面操作前需要获取这个令牌。
但这样效率太低也不安全。
这种东西不能放在jsp页面中,最好放在服务端处理

解决方案 »

  1.   

    第一种方法 你可以通过调用存储过程,一次性执行这些sql语句第二种方法 调用Statement对象的addBatch方法
     例如: stmt.addBatch("insert into A xxxxxxx");
           stmt.addBatch("insert into B xxxxxxx");
           stmt.addBatch("insert into C xxxxxxx");
      然后调用executeBach()
           int[] counts=stmt.executeBatch();
      最后编历数组counts,查看每个元素是否1
      (每个counts数组元素对应上述三条执行语句影响纪录的条数,此例应为1)
      如果有一个不为1的,你可以认为插入出错,调用connection对象的rollback()回滚
    整个批处理修改具体的过程参考api document
      

  2.   

    存储过程
    你可以到SQL里去问问。
      

  3.   

    jsp程序本就是在服务器端处理的阿
      

  4.   

    记得jdbc里面有个回滚的方法,比如交易失败就所有数据回滚,
    想不起来了。
    但是我觉得楼主想得有点多了。
      

  5.   

    Connection conn = ds.getConnection();
          conn.setAutoCommit(false);
          Statement stmt = conn.createStatement();
          int nRow[] = null;
          int nRow[0] = stmt.executeUpdate("insert into A xxxxxxx");
          int nRow[1] = stmt.executeUpdate(("insert into B xxxxxxx");
           .
           .
           .
    for(int i=0;i<nRow.length;i++){
    if(nRow[i]==0){
      stmt.close();
      conn.rollback();
    }
    }else{
          stmt.close();
          conn.commit();
    }