I'm using a H2 database with a file using Spring Boot.
In my application.properties, I have this entry:
spring.datasource.url=jdbc:h2:file:c:/Testprojekte/spring-boot-h2-db
But now I would like to be able to look at the database while running the application, which currently isn't possible because I need to have the database running in server mode in order to do so. In the documentation I found that I have to add AUTO_SERVER=TRUE to the URL but this doesn't solve the problem.
So, what do I have to change to be able to connect to that database from different processes at the same time ?
thanks for any help! Thorsten
H2 database has an embedded GUI console for browsing the contents of a database and running SQL queries. By default, the H2 console is not enabled in Spring. To enable it, we need to add the following property to application.properties: spring.h2.console.enabled=true.
You can start the H2 TCP server as a bean:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<!-- <scope>runtime</scope> -->
</dependency>
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean(initMethod = "start", destroyMethod = "stop")
public Server h2Server() throws SQLException {
return Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "9092");
}
}
Then connect to it from your IDE with the following params (password - empty):
url: jdbc:h2:tcp://localhost:9092/mem:testdb
user: sa
More info is here and here.
You can enable h2 web console to access your h2 in memory or in file database using a web interface in your browser.
therefor add in application.properties the lines:
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
after that restart your spring boot application and check http://localhost:8080/h2-console
with your browser.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With