Spring - Afficher le contenu de la base de données intégrée HSQLDB
Un exemple de Spring@Configuration
pour démarrer une base de données intégrée HSQLDB ou une base de données en mémoire.
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; } }
Consultez le journal Spring, une base de données intégrée «testdb» sera créée et vous pourrez y accéder via 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]
Afficher le contenu de la base de données intégrée HSQLDB
Démarrez lesDatabaseManagerSwing
dans le même conteneur 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", ""}); } }
Lorsque le conteneur Spring est démarré, un gestionnaire de base de données Swing HSQL sera invité.
Note
Si vous démarrez lesDatabaseManagerSwing
via une invite de commande ou un terminal, le gestionnaire de base de données Swing HSQL sera toujours invité, mais il est IMPOSSIBLE de se connecter à la base de données intégrée qui a démarré par Spring , car les deux sont des JVM différents.
java -cp hsqldb-2.3.2.jar org.hsqldb.util.DatabaseManagerSwing