Taraxacum Import: Update sec_id of Taraxacum taxa (merged from 2.0 & improved)
authora.babadshanjan <a.babadshanjan@localhost>
Fri, 19 Jun 2009 09:41:33 +0000 (09:41 +0000)
committera.babadshanjan <a.babadshanjan@localhost>
Fri, 19 Jun 2009 09:41:33 +0000 (09:41 +0000)
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/CdmDataSourceBase.java

index 01c007929f3dfacc748af108897357483b751a17..09f1f37f2b65af04f049578d9a4fcbac9b39025e 100644 (file)
@@ -11,6 +11,9 @@ package eu.etaxonomy.cdm.database;
 \r
 import java.sql.Connection;\r
 import java.sql.DriverManager;\r
+import java.sql.ResultSet;\r
+import java.sql.SQLException;\r
+import java.sql.Statement;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
@@ -23,20 +26,33 @@ import eu.etaxonomy.cdm.database.types.IDatabaseType;
  */\r
 abstract class CdmDataSourceBase implements ICdmDataSource {\r
        private static final Logger logger = Logger.getLogger(CdmDataSourceBase.class);\r
+\r
        \r
-       \r
+       private Connection getConnection() {\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.database.ICdmDataSource#testConnection()\r
-        */\r
-       public boolean testConnection() {\r
+               Connection mConn = null;\r
                try {\r
                        IDatabaseType dbType = getDatabaseType().getDatabaseType();\r
                        String classString = dbType.getClassString();\r
                        Class.forName(classString);\r
-                       \r
                        String mUrl = dbType.getConnectionString(this);\r
-                       Connection mConn = DriverManager.getConnection(mUrl, getUsername(), getPassword());\r
+                       mConn = DriverManager.getConnection(mUrl, getUsername(), getPassword());\r
+               } catch (ClassNotFoundException e) {\r
+                       logger.error("Database driver class could not be loaded\n" + "Exception: " + e.toString());\r
+               } catch(SQLException e) {\r
+                       logger.error("Problems with database connection\n" + "Exception: " + e.toString());\r
+               }\r
+               return mConn;\r
+       }\r
+\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.database.ICdmDataSource#testConnection()\r
+        */\r
+       public boolean testConnection() {\r
+\r
+               try {\r
+                       Connection mConn = getConnection();\r
                        if (mConn != null){\r
                                return true;\r
                        }else{\r
@@ -47,4 +63,47 @@ abstract class CdmDataSourceBase implements ICdmDataSource {
                        return false;\r
                }\r
        }\r
+\r
+       \r
+    /**\r
+     * Executes a query and returns the ResultSet.\r
+     * @return ResultSet for the query.\r
+     */\r
+       public ResultSet executeQuery (String query) {\r
+\r
+               ResultSet rs;\r
+               try {\r
+                       if (query == null){\r
+                               return null;\r
+                       }\r
+                       Connection mConn = getConnection();\r
+                       Statement mStmt = mConn.createStatement();\r
+                       rs = mStmt.executeQuery(query);\r
+                       return rs;\r
+               } catch(SQLException e) {\r
+                       logger.error("Problems when executing query \n  " + query + " \n" + "Exception: " + e);\r
+                       return null;\r
+               }\r
+       }\r
+       \r
+    /**\r
+     * Executes an update\r
+     * @return return code\r
+     */\r
+       public int executeUpdate (String sqlUpdate) {\r
+               \r
+               int result;\r
+               try {\r
+                       if (sqlUpdate == null){\r
+                               return 0;\r
+                       }\r
+                       Connection mConn = getConnection();\r
+                       Statement mStmt = mConn.createStatement();\r
+                       result = mStmt.executeUpdate(sqlUpdate);\r
+                       return result;\r
+               } catch(SQLException e) {\r
+                       logger.error("Problems when executing update\n  " + sqlUpdate + " \n" + "Exception: " + e);\r
+                       return 0;\r
+               }\r
+       }\r
 }\r