stmt.addBatch(string sql)
添加多条SQL语句一同提交
stmt.excuteBatch()
这样也可以避免频繁与数据库交互

解决方案 »

  1.   

    请确认第一条update的语句是否已经update,还有两个update语句是否同用一个connection
      

  2.   

    请确认第一条update的语句是否已经commit,还有,两个update语句是否同用一个connection
      

  3.   

    上一条语句可能未执行完毕,改为:Statement stmt=con.createStatement();String update1="update libbook set bdate='"+bdatetime+"' where cardid='"+cardid+"' and bookctl='"+bookctl+"'";String update2="update libbook set rdate='"+rdatetime+"' where cardid='"+cardid+"' and bookctl='"+bookctl+"'";stmt.addBatch(update1);
    stmt.addBatch(update2);
    stmt.executeBatch();
      

  4.   

    to  moumouren(某某人)
    如何commit,用什么语句?
      

  5.   

    感谢大家,问题已经解决,原来我在bean中的executeUpdate的方法中把conn关掉了。
    不过又有新问题!我尝试用addbatch和executeBatch的方法时好像只能执行最靠近executbatch的那个addbatch,是什么回事?
    在bean中的代码如下:
    public void addBatch(String sql) {
        try {
          stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
          stmt.addBatch(sql);
        }
        catch (SQLException ex) {
          System.err.println("aq.executeQuery:" + ex.getMessage());
        }
      }  public void executeBatch() {    try {
          stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
        stmt.executeBatch();    }
        catch (SQLException ex) {
          System.err.println("aq.executeQuery:" + ex.getMessage());
        }
      }
      

  6.   

    不要创建几个stmt,一起用第一个就行了