\r
package eu.etaxonomy.cdm.database;\r
\r
+import java.sql.DatabaseMetaData;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
\r
-import org.hibernate.cache.CacheProvider;\r
+import org.hibernate.cache.spi.RegionFactory;\r
import org.springframework.beans.factory.config.BeanDefinition;\r
\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
* @param cacheProviderClass\r
* @return BeanDefinition\r
*/\r
- public BeanDefinition getHibernatePropertiesBean(DbSchemaValidation hbm2dll, Boolean showSql, Boolean formatSql, Boolean registerSearchListener, Class<? extends CacheProvider> cacheProviderClass);\r
+ public BeanDefinition getHibernatePropertiesBean(DbSchemaValidation hbm2dll, Boolean showSql, Boolean formatSql, Boolean registerSearchListener, Class<? extends RegionFactory> cacheProviderClass);\r
\r
\r
/**\r
public String getServer();\r
\r
/**\r
+ * Returns the name of the datasource on the given server.\r
* @return\r
*/\r
public String getDatabase();\r
\r
+ /**\r
+ * Returns the database type of the data source. \r
+ * @return the database type of the data source. \r
+ * <code>null</code> if the bean or the driver class property does not exist or the driver class is unknown.\r
+ */\r
public DatabaseTypeEnum getDatabaseType();\r
\r
/**\r
/**\r
* Tests, if a database connection can be established.\r
* @return true if test was successful, false otherwise\r
+ * @throws ClassNotFoundException \r
+ * @throws SQLException \r
* @throws Exception \r
*/\r
- public boolean testConnection() throws DataSourceNotFoundException;\r
+ public boolean testConnection() throws ClassNotFoundException, SQLException;\r
\r
public String getUsername();\r
\r
/**\r
* Executes a query and returns the ResultSet.\r
* @return ResultSet for the query.\r
+ * @throws SQLException \r
*/\r
- public ResultSet executeQuery (String query);\r
+ public ResultSet executeQuery (String query) throws SQLException;\r
\r
/**\r
* Executes an update\r
* @return return code\r
*/\r
- public int executeUpdate (String sqlUpdate);\r
+ public int executeUpdate (String sqlUpdate) throws SQLException;\r
+ \r
+ /**\r
+ * Starts a transaction for the given datasource.\r
+ */\r
+ public void startTransaction();\r
+ \r
+ /**\r
+ * Commits the transaction for the given datasource.\r
+ * @return\r
+ * @throws SQLException \r
+ */\r
+ public void commitTransaction() throws SQLException;\r
+ \r
+ /**\r
+ * Rolls the connection back.\r
+ * @throws SQLException \r
+ */\r
+ public void rollback() throws SQLException;\r
+\r
\r
public NomenclaturalCode getNomenclaturalCode();\r
\r
+ /**\r
+ * Returns the first value of the first row of a result set.<BR>\r
+ * If no row exists in the result set\r
+ * <code>null</code> is returned.\r
+ * \r
+ * <strong>Caution</strong> This method opens a connection on first use. Subsequent calls will use the same connection.\r
+ * Please close the connection when not needed anymore with {@link ICdmDataSource#closeOpenConnections()}\r
+ * \r
+ * @param query\r
+ * @return\r
+ * @throws SQLException\r
+ */\r
public Object getSingleValue(String query) throws SQLException; \r
\r
+ /**\r
+ * Returns {@link DatabaseMetaData} for <code>this</code> datasource.\r
+ * \r
+ * <br>\r
+ * <br>\r
+ * <strong>Caution</strong> This method opens a connection that should be closed\r
+ * with {@link #closeOpenConnections()}\r
+ * \r
+ * @return\r
+ */\r
+ public DatabaseMetaData getMetaData();\r
+ \r
+ /**\r
+ * \r
+ */\r
+ public void closeOpenConnections();\r
+\r
+ \r
//\r
// public void setFilePath(String filePath);\r
// \r