How to enable H2 Database Server Mode in Spring Boot

走远了吗. 提交于 2019-12-04 03:53:49

问题


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


回答1:


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.




回答2:


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.



来源:https://stackoverflow.com/questions/55830010/how-to-enable-h2-database-server-mode-in-spring-boot

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!