Changeset 21303

Show
Ignore:
Timestamp:
09.12.2009 13:07:34 (10 years ago)
Author:
xiao
Message:

close db connections and statements after they are used

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/sql/derby/DerbyDBWrapper.java

    r19636 r21303  
    101101    //the database hasn't been correct yet 
    102102        ArrayList results = new ArrayList(); 
    103     try{     
    104          
    105         if (statement == null){ 
     103    ResultSet rs = null; 
     104    try{     
     105         
     106        if (statement == null){ 
    106107            logger.info("the database hasn't been correct yet"); 
    107108            return new ArrayList(); 
    108         } 
    109      
    110         ResultSet rs = statement.executeQuery(query_statement); 
    111         ResultSetMetaData rsmd = rs.getMetaData(); 
    112         int numOfColumns = rsmd.getColumnCount(); 
    113         while(rs.next()){ 
    114            HashMap arow = new HashMap(); 
    115            for(int i = 1; i <= numOfColumns ; i++){ 
    116                arow.put(rsmd.getColumnName(i).toLowerCase(), rs.getObject(i)); 
    117            } 
    118            results.add(arow);   
    119        } 
     109        } 
     110         
     111        rs = statement.executeQuery(query_statement); 
     112        ResultSetMetaData rsmd = rs.getMetaData(); 
     113        int numOfColumns = rsmd.getColumnCount(); 
     114        while(rs.next()){ 
     115        HashMap arow = new HashMap(); 
     116        for(int i = 1; i <= numOfColumns ; i++){ 
     117            arow.put(rsmd.getColumnName(i).toLowerCase(), rs.getObject(i)); 
     118        } 
     119        results.add(arow);   
     120        } 
     121 
     122        rs.close(); 
     123        
    120124    } 
    121125    catch(SQLException sqle){ 
     
    124128    } 
    125129    catch(Exception e){          
    126         logger.debug(e); 
    127         return null; 
     130        logger.debug(e); 
     131        return null; 
    128132    } 
    129133    return results; 
     
    143147            logger.debug(stat); 
    144148            rs = statement.executeQuery(stat); 
    145              
    146             logger.info("sql stat="+stat+ " result="+rs); 
     149            logger.info("sql stat="+stat+ " result="+rs); 
    147150        } 
    148151        catch(SQLException sqle){ 
     
    169172 
    170173            rs = statement.execute(stat); 
    171 //          connection.commit(); 
     174        statement.close(); 
     175        //          connection.commit(); 
    172176        } 
    173177        catch(SQLException sqle){            
     
    194198            //either the row count of INSERT, UPDATE OR DELETE statement, or 0 if the statement returns nothing 
    195199            rs = statement.executeUpdate(stat); 
     200        statement.close(); 
    196201//          connection.commit(); 
    197             logger.debug("sql stat="+stat+ " result="+rs); 
     202        logger.debug("sql stat="+stat+ " result="+rs); 
    198203        } 
    199204        catch(SQLException sqle){            
     
    214219    public void check4Table(String stat) throws SQLException { 
    215220        statement.executeQuery(stat); 
     221    statement.close(); 
    216222    } 
    217223 
    218224    public void closeConnection(String databasepath){ 
    219     sqlServer.disconnect(databasepath); 
     225    try{ 
     226        statement.close(); 
     227        connection.close(); 
     228        sqlServer.disconnect(databasepath); 
     229    } 
     230    catch(SQLException sqle){ 
     231        logger.debug("Database Error occured when close connection " + databasepath, sqle); 
     232    } 
    220233    } 
    221234