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