Spring - просмотр содержимого встроенной базы данных HSQLDB
Пример Spring@Configuration
для запуска встроенной базы данных HSQLDB или базы данных в памяти.
DataSourceConfig.java
package com.example.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, и вы сможете получить доступ через jdbcjdbc: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.example.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.example.config.db.DataSourceConfig; @Configuration @Import({DataSourceConfig.class}) @ComponentScan({ "com.example" }) 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 будет запрошен.
Note
Если вы запуститеDatabaseManagerSwing
через командную строку или терминал, менеджер баз данных Swing HSQL все равно будет запрашивать запрос, но НЕВОЗМОЖНО подключиться к встроенной базе данных, запущенной Spring , потому что это разные JVM.
java -cp hsqldb-2.3.2.jar org.hsqldb.util.DatabaseManagerSwing