org.springframework.jdbc.datasource.embedded

Class EmbeddedDatabaseFactory

  • java.lang.Object
    • org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory
    • Field Detail

      • DEFAULT_DATABASE_NAME

        public static final java.lang.String DEFAULT_DATABASE_NAME
        Default name for an embedded database: "testdb".
        See Also:
        Constant Field Values
    • Constructor Detail

      • EmbeddedDatabaseFactory

        public EmbeddedDatabaseFactory()
    • Method Detail

      • setGenerateUniqueDatabaseName

        public void setGenerateUniqueDatabaseName(boolean generateUniqueDatabaseName)
        Set the generateUniqueDatabaseName flag to enable or disable generation of a pseudo-random unique ID to be used as the database name.

        Setting this flag to true overrides any explicit name set via setDatabaseName(java.lang.String).

        Since:
        4.2
        See Also:
        setDatabaseName(java.lang.String)
      • setDatabaseName

        public void setDatabaseName(java.lang.String databaseName)
        Set the name of the database.

        Defaults to "testdb".

        Will be overridden if the generateUniqueDatabaseName flag has been set to true.

        Parameters:
        databaseName - name of the embedded database
        See Also:
        setGenerateUniqueDatabaseName(boolean)
      • 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 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 initialize or populate the embedded database.

        Defaults to null.

      • initDatabase

        protected void initDatabase()
        Hook to initialize the embedded database.

        If the generateUniqueDatabaseName flag has been set to true, the current value of the database name will be overridden with an auto-generated name.

        Subclasses may call this method to force initialization; however, this method should only be invoked once.

        After calling this method, getDataSource() returns the DataSource providing connectivity to the database.

      • shutdownDatabase

        protected void shutdownDatabase()
        Hook to shutdown the embedded database. Subclasses may call this method to force shutdown.

        After calling, getDataSource() returns null.

        Does nothing if no embedded database has been initialized.

      • getDataSource

        @Nullable
        protected final javax.sql.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 if the database has been shut down. Subclasses may call this method to access the DataSource instance directly.