确实有点乱啊,我就按照你写的意思给你大概写个样子
    public void update(Connection conn) throws AppException {
        String sql = "UPDATE ......";
        try {
            PreparedStatement sttSql = conn.prepareStatement(sql);
            try {
......
                sttSql.executeUpdate();
                conn.commit();            } finally {
                sttSql.close();
            }
        } catch (SQLException e) {
            conn.rollback();
            logger.error("com.argorse.xframework.banksystem.dao.OnLineBankDAOImpl","transferAccount",sqlEx); 
throw new AppException("com.argorse.xframework.banksystem.dao.OnLineBankDAOImpl::transferAccount::SQLException"); 
        }
    }

    public List<String> select(Connection conn) throws AppException {
        String sql = "SELECT ......";
        try {
            PreparedStatement sttSql = conn.prepareStatement(sql);
            try {
                sttSql.setString(1, mainUnit.getParam1());
                ResultSet rs = sttSql.executeQuery();
                try {
                    final List<String> list = new ArrayList<String>();
                    while (rs.next()) {
......
                    }
                    return list;
                } finally {
                    rs.close();
                }
            } finally {
                sttSql.close();
            }
        } catch (Exception e) {
            logger.error("com.argorse.xframework.banksystem.dao.OnLineBankDAOImpl","transferAccount",sqlEx); 
throw new AppException("com.argorse.xframework.banksystem.dao.OnLineBankDAOImpl::transferAccount::SQLException"); 
        }
    }

解决方案 »

  1.   

    楼上的朋友 我有5个SQL语句  第1个是 找数值  第2个是把找出来的修改后加到数据库 第3,4雷同1,2。第5个是把1,2,3,4这个过程记录在数据库中。
      public   void   confirmAccount(TransferAccount   domain,   Connection   conn)   throws   AppException   { 
                  double   fromBalance   =   0   ; 
                  double   toBalance   =   0; 
                    int     fromID   =   0; try{ String   sqlFrom="SELECT   B.ID,B.BALANCE   FROM   HU.BANK_ACCOUNT   AS   B     WHERE   B.ACCOUNT_NO=?"; PreparedStatement   stat   =   conn.prepareStatement(sqlFrom);         stat.setString(1,domain.getFromAccount()); 
            ResultSet   rs=stat.executeQuery(); 
              if(rs.next()){ 
                            fromID   =   rs.getInt(1); 
                           fromBalance   =   rs.getDouble(2); 
                           } 
         String   sqlFromAmount   =   "UPDATE   HU.BANK_ACCOUNT   AS   B   SET   B.BALANCE=?       WHERE   B.ACCOUNT_NO=?"; 
    stat   =   conn.prepareStatement(sqlFromAmount); 
    stat.setDouble(1,fromBalance-domain.getAmount()); 
    stat.setString(2,domain.getFromAccount()); 
            stat.execute(); 
            
            
    String   sqlTo="SELECT   B.BALANCE   FROM   HU.BANK_ACCOUNT   AS   B     WHERE   B.ACCOUNT_NO=?"; 
    stat   =   conn.prepareStatement(sqlTo); 
    stat.setString(1,domain.getToAccount()); 
    rs=stat.executeQuery(); 
    if(rs.next()){ 
                                                    toBalance   =   rs.getDouble(1); 

    System.out.println(2); 
    String   sqlToAmount   =   "UPDATE   HU.BANK_ACCOUNT   AS   B   SET   B.BALANCE=?   WHERE   B.ACCOUNT_NO=?"; 
    stat   =   conn.prepareStatement(sqlFromAmount); 
    stat.setDouble(1,toBalance+domain.getAmount()); 
    stat.setString(2,domain.getToAccount()); 
            stat.execute(); 
    String   sql   =   "INSERT   INTO   HU.TRANSFER_INFO   VALUES(?,?,?,?,current   timestamp)"; 
    stat   =   conn.prepareStatement(sql); 
    stat.setInt(1,fromID); 
    stat.setString(2,domain.getFromAccount()); 
    stat.setString(3,domain.getToAccount()); 
    stat.setDouble(4,domain.getAmount()); 
    stat.execute(); rs.close(); 
    stat.close(); }catch(SQLException   sqlEx){ 
    logger.error("com.argorse.xframework.banksystem.dao.OnLineBankDAOImpl","transferAccount",sqlEx); 
    throw   new   AppException("com.argorse.xframework.banksystem.dao.OnLineBankDAOImpl::transferAccount::SQLException"); 


      

  2.   

    为什么不拆开做成方法呢,非要将5个sql放在一个方法里吗