another database fix
authorzapata <zapata>
Tue, 6 May 2003 18:08:05 +0000 (18:08 +0000)
committerzapata <zapata>
Tue, 6 May 2003 18:08:05 +0000 (18:08 +0000)
source/mir/storage/Database.java
source/mir/storage/StorageObject.java
source/mircoders/module/ModuleLanguage.java

index e64874c..d11554b 100755 (executable)
@@ -76,7 +76,7 @@ import mir.util.JDBCStringRoutines;
  * Treiber, Host, User und Passwort, ueber den der Zugriff auf die
  * Datenbank erfolgt.
  *
- * @version $Id: Database.java,v 1.43 2003/05/06 17:37:50 zapata Exp $
+ * @version $Id: Database.java,v 1.44 2003/05/06 18:08:05 zapata Exp $
  * @author rk
  *
  */
@@ -659,9 +659,11 @@ public class Database implements StorageObject {
           o_store.add(sid);
         }
       }
-    } catch (SQLException sqe) {
+    }
+    catch (SQLException sqe) {
       throwSQLException(sqe, "selectByWhereClause");
-    } finally {
+    }
+    finally {
       try {
         if (con != null) {
           freeConnection(con, stmt);
@@ -1229,7 +1231,7 @@ public class Database implements StorageObject {
 
     return rs;
   }
-
+/*
   public ResultSet executeSql(String sql) throws StorageObjectFailure, SQLException {
     long startTime = System.currentTimeMillis();
     Connection connection = null;
@@ -1255,7 +1257,7 @@ public class Database implements StorageObject {
       }
     }
   }
-
+*/
   private Map processRow(ResultSet aResultSet) throws StorageObjectFailure, StorageObjectExc {
     try {
       Map result = new HashMap();
@@ -1273,9 +1275,13 @@ public class Database implements StorageObject {
   }
 
   public List executeFreeSql(String sql, int aLimit) throws StorageObjectFailure, StorageObjectExc {
+    Connection connection = null;
+    Statement statement = null;
     try {
       List result = new Vector();
-      ResultSet resultset = executeSql(sql);
+      connection = getPooledCon();
+      statement = connection.createStatement();
+      ResultSet resultset = executeSql(statement, sql);
       try {
         while (resultset.next() && result.size() < aLimit) {
           result.add(processRow(resultset));
@@ -1290,20 +1296,23 @@ public class Database implements StorageObject {
     catch (Throwable e) {
       throw new StorageObjectFailure(e);
     }
+    finally {
+      if (connection!=null) {
+        freeConnection(connection, statement);
+      }
+    }
   };
 
-  public Map executeFreeSingleRowSql(String sql) throws StorageObjectFailure, StorageObjectExc {
+  public Map executeFreeSingleRowSql(String anSqlStatement) throws StorageObjectFailure, StorageObjectExc {
     try {
-      ResultSet resultset = executeSql(sql);
+      List resultList = executeFreeSql(anSqlStatement, 1);
       try {
-
-        if (resultset.next())
-          return processRow(resultset);
+        if (resultList.size()>0)
+          return (Map) resultList.get(0);
         else
           return null;
       }
       finally {
-        resultset.close();
       }
     }
     catch (Throwable t) {
index e2c6d97..5e63c2b 100755 (executable)
@@ -197,15 +197,6 @@ public interface StorageObject {
   abstract public ResultSet executeSql(Statement a, String sql) throws StorageObjectFailure, SQLException;
 
   /**
-   *
-   * @param sql
-   * @return
-   * @throws StorageObjectFailure
-   * @throws SQLException
-   */
-  abstract public ResultSet executeSql(String sql) throws StorageObjectFailure, SQLException;
-
-  /**
    * Executes 1 sql statement and returns the results as a <code>List</code> of <code>Map</code>s
    *
    * @param sql
index c081663..b78444b 100755 (executable)
 package mircoders.module;
 
 import mir.log.LoggerWrapper;
-import mir.module.*;
+import mir.module.AbstractModule;
+import mir.module.ModuleExc;
+import mir.module.ModuleFailure;
 import mir.storage.StorageObject;
-import mir.util.*;
+import mir.util.JDBCStringRoutines;
 
 /**
  * Title:        mir - another content management system