org.jminor.common.db.dbms
Class HSQLDatabase

java.lang.Object
  extended by org.jminor.common.db.AbstractDatabase
      extended by org.jminor.common.db.dbms.HSQLDatabase
All Implemented Interfaces:
Database

public final class HSQLDatabase
extends AbstractDatabase

A Database implementation based on the HSQL database.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jminor.common.db.Database
Database.Statistics
 
Field Summary
 
Fields inherited from interface org.jminor.common.db.Database
DATABASE_EMBEDDED, DATABASE_HOST, DATABASE_IMPLEMENTATION_CLASS, DATABASE_POOL_STATISTICS, DATABASE_PORT, DATABASE_SID, DATABASE_TYPE, DEFAULT_LOGIN_TIMEOUT, DERBY, H2, HSQL, MYSQL, ORACLE, PASSWORD_PROPERTY, POSTGRESQL, SQLSERVER, USER_PROPERTY
 
Constructor Summary
HSQLDatabase()
          Instantiates a new H2Database.
HSQLDatabase(String databaseName)
          Instantiates a new embedded HSQLDatabase.
HSQLDatabase(String host, String port, String sid)
          Instantiates a new networked HSQLDatabase.
 
Method Summary
 String getAutoIncrementValueSQL(String idSource)
          Returns a query string for retrieving the last automatically generated id from the given id source
 String getSequenceSQL(String sequenceName)
          
 String getURL(Properties connectionProperties)
          
 void loadDriver()
          Loads the database driver
 void shutdownEmbedded(Properties connectionProperties)
          This should shutdown the database in case it is an embedded one and if that is applicable, such as for Derby.
 
Methods inherited from class org.jminor.common.db.AbstractDatabase
addConnectionProperties, createConnection, getAuthenticationInfo, getCheckConnectionQuery, getDatabaseType, getErrorMessage, getHost, getLoginTimeout, getPort, getSid, isEmbedded, supportsIsValid, supportsNowait
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HSQLDatabase

public HSQLDatabase()
Instantiates a new H2Database.


HSQLDatabase

public HSQLDatabase(String databaseName)
Instantiates a new embedded HSQLDatabase.

Parameters:
databaseName - the path to the database files

HSQLDatabase

public HSQLDatabase(String host,
                    String port,
                    String sid)
Instantiates a new networked HSQLDatabase.

Parameters:
host - the host name
port - the port number
sid - the service identifier
Method Detail

loadDriver

public void loadDriver()
                throws ClassNotFoundException
Loads the database driver

Throws:
ClassNotFoundException - in case the driver class in not found

getAutoIncrementValueSQL

public String getAutoIncrementValueSQL(String idSource)
Returns a query string for retrieving the last automatically generated id from the given id source

Parameters:
idSource - the source for the id, for example a sequence name or in the case of Derby, the name of the table
Returns:
a query string for retrieving the last auto-increment value from idSource

getSequenceSQL

public String getSequenceSQL(String sequenceName)

Specified by:
getSequenceSQL in interface Database
Overrides:
getSequenceSQL in class AbstractDatabase
Parameters:
sequenceName - the name of the sequence
Returns:
a query for selecting the next value from the given sequence

getURL

public String getURL(Properties connectionProperties)

Parameters:
connectionProperties - the connection properties, used primarily to provide embedded databases with user info for authentication purposes
Returns:
the database url of the active database, based on system properties

shutdownEmbedded

public void shutdownEmbedded(Properties connectionProperties)
This should shutdown the database in case it is an embedded one and if that is applicable, such as for Derby.

Specified by:
shutdownEmbedded in interface Database
Overrides:
shutdownEmbedded in class AbstractDatabase
Parameters:
connectionProperties - the connection properties