org.springframework.jdbc.datasource.embedded
Class EmbeddedDatabaseFactory

java.lang.Object
  extended by org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory
Direct Known Subclasses:
EmbeddedDatabaseFactoryBean

public class EmbeddedDatabaseFactory
extends Object

Creates a EmbeddedDatabase instance. Callers are guaranteed that the returned database has been fully initialized and populated.

Can be configured:
Call setDatabaseName(String) to change the name of the database.
Call setDatabaseType(EmbeddedDatabaseType) to set the database type if you wish to use one of the supported types.
Call setDatabaseConfigurer(EmbeddedDatabaseConfigurer) to configure support for your own embedded database type.
Call setDatabasePopulator(DatabasePopulator) to change the algorithm used to populate the database.
Call setDataSourceFactory(DataSourceFactory) to change the type of DataSource used to connect to the database.
Call getDatabase() to get the EmbeddedDatabase instance.

Since:
3.0
Author:
Keith Donald, Juergen Hoeller

Constructor Summary
EmbeddedDatabaseFactory()
           
 
Method Summary
 EmbeddedDatabase getDatabase()
          Factory method that returns the embedded database instance.
protected  DataSource getDataSource()
          Hook that gets the DataSource that provides the connectivity to the embedded database.
protected  void initDatabase()
          Hook to initialize the embedded database.
 void setDatabaseConfigurer(EmbeddedDatabaseConfigurer configurer)
          Set the strategy that will be used to configure the embedded database instance.
 void setDatabaseName(String databaseName)
          Set the name of the database.
 void setDatabasePopulator(DatabasePopulator populator)
          Set the strategy that will be used to populate the embedded database.
 void setDatabaseType(EmbeddedDatabaseType type)
          Set the type of embedded database to use.
 void setDataSourceFactory(DataSourceFactory dataSourceFactory)
          Set the factory to use to create the DataSource instance that connects to the embedded database.
protected  void shutdownDatabase()
          Hook to shutdown the embedded database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EmbeddedDatabaseFactory

public EmbeddedDatabaseFactory()
Method Detail

setDatabaseName

public void setDatabaseName(String databaseName)
Set the name of the database. Defaults to "testdb".

Parameters:
databaseName - name of the test database

setDatabaseType

public void setDatabaseType(EmbeddedDatabaseType type)
Set the type of embedded database to use. Call this when you wish to configure one of the pre-supported types. Defaults to HSQL.

Parameters:
type - the test database type

setDatabaseConfigurer

public void setDatabaseConfigurer(EmbeddedDatabaseConfigurer configurer)
Set the strategy that will be used to configure the embedded database instance. Call this when you wish to use an embedded database type not already supported.

Parameters:
configurer - the embedded database configurer

setDatabasePopulator

public void setDatabasePopulator(DatabasePopulator populator)
Set the strategy that will be used to populate the embedded database. Defaults to null.

Parameters:
populator - the database populator

setDataSourceFactory

public void setDataSourceFactory(DataSourceFactory dataSourceFactory)
Set the factory to use to create the DataSource instance that connects to the embedded database. Defaults to SimpleDriverDataSourceFactory.

Parameters:
dataSourceFactory - the data source factory

getDatabase

public EmbeddedDatabase getDatabase()
Factory method that returns the embedded database instance.


initDatabase

protected void initDatabase()
Hook to initialize the embedded database. Subclasses may call to force initialization. After calling this method, getDataSource() returns the DataSource providing connectivity to the db.


getDataSource

protected DataSource getDataSource()
Hook that gets the DataSource that provides the connectivity to the embedded database.

Returns null if the DataSource has not been initialized or the database has been shut down. Subclasses may call to access the datasource instance directly.


shutdownDatabase

protected void shutdownDatabase()
Hook to shutdown the embedded database. Subclasses may call to force shutdown. After calling, getDataSource() returns null. Does nothing if no embedded database has been initialized.