HSQLDB組み込みデータベースまたはインメモリデータベースを開始するSpring `@ Configuration`の例です。
DataSourceConfig.java
package com.mkyong.config.db; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; @Configuration public class DataSourceConfig { @Bean public DataSource dataSource(){ //jdbc:hsqldb:mem:testdb EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); EmbeddedDatabase db = builder.setType(EmbeddedDatabaseType.HSQL) .addScript("db/hsqldb/db.sql") .build(); return db; } }
Springのログを確認すると、 “testdb”組み込みデータベースが作成され、jdbc `jdbc:hsqldb:mem:testdb`を介してアクセスできます
INFO o.s.j.d.e.EmbeddedDatabaseFactory - Creating embedded database 'testdb' DEBUG o.s.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource DEBUG o.s.j.d.SimpleDriverDataSource - Creating new JDBC Driver Connection to[jdbc:hsqldb:mem:testdb]INFO o.s.jdbc.datasource.init.ScriptUtils - Executing SQL script from class path resource[db/hsqldb/db.sql].... === HSQLDB組み込みデータベースの内容を表示する `DatabaseManagerSwing`を同じSpringコンテナで起動してください。 SpringRootConfig.java
package com.mkyong.config;
import javax.annotation.PostConstruct;
import javax.sql.DataSource;
import org.hsqldb.util.DatabaseManagerSwing;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.jdbc.core.JdbcTemplate;
import com.mkyong.config.db.DataSourceConfig;
@Configuration
@Import({DataSourceConfig.class})
@ComponentScan({ “com.mkyong” })
public class SpringRootConfig {
@Autowired DataSource dataSource;
@Bean public JdbcTemplate getJdbcTemplate(){ return new JdbcTemplate(dataSource); }
//default username : sa, password : '' @PostConstruct public void getDbManager(){ DatabaseManagerSwing.main( new String[]{ "--url", "jdbc:hsqldb:mem:testdb", "--user", "sa", "--password", ""}); } }
Springコンテナが開始されると、Swing HSQLデータベースマネージャが表示されます。 image://wp-content/uploads/2015/06/hsql-database-manager.png[hsql-database-manager、width = 696、height = 507] ** Note ** +コマンドプロンプトやターミナルを介して `DatabaseManagerSwing`を起動すると、Swing HSQLデータベースマネージャーは依然としてプロンプトが表示されますが、両方が異なるJVMであるため、Springによって開始された組み込みデータベースに接続することはできません。
java -cp hsqldb-2.3.2.jar org.hsqldb.util.DatabaseManagerSwing
=== 参考文献 . http://hsqldb.org/doc/2.0/util-guide/dbm-chapt.html[Hsqldb test ユーティリティ - データベースマネージャ] link://tag/spring-jdbc/[spring jdbc]