## org.springframework.jdbc.datasource.embedded
Class EmbeddedDatabaseFactory

    java.lang.Object
      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

### 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`.

### 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.

### setDatabasePopulator

    public void setDatabasePopulator(DatabasePopulator populator)

  Set the strategy that will be used to populate the embedded database. Defaults to null.

  See Also:
    `DataSourceInitializer.setDatabasePopulator(org.springframework.jdbc.datasource.init.DatabasePopulator)`

### 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.

### 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.

### getDataSource

    protected final 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.