java - 如何在 Spring Boot 中启用 H2 数据库服务器模式

标签 java spring-boot spring-data-jpa h2

我正在使用 H2 数据库和一个使用 Spring Boot 的文件。

在我的 application.properties 中,我有这个条目:

spring.datasource.url=jdbc:h2:file:c:/Testprojekte/spring-boot-h2-db

但现在我希望能够在运行应用程序时查看数据库,这目前是不可能的,因为我需要让数据库在服务器模式下运行才能这样做。在文档中,我发现我必须将 AUTO_SERVER=TRUE 添加到 URL,但这并不能解决问题。

那么,我必须更改什么才能同时从不同进程连接到该数据库?

感谢您的帮助! 托斯滕

最佳答案

您可以将 H2 TCP 服务器作为 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");
    }
}

然后使用以下参数(密码 - 空)从您的 IDE 连接到它:

url: jdbc:h2:tcp://localhost:9092/mem:testdb
user: sa

更多信息是 herehere .

关于java - 如何在 Spring Boot 中启用 H2 数据库服务器模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55830010/

相关文章:

java - 尝试以递归方式将自定义节点添加到 LinkedList 的末尾

mysql - 如何将时区正确设置为 UTC,以便以这种格式正确保存和检索所有时间戳?

mysql - 具有空 IN 子句的 Spring 数据存储库

java - JPA问题@OneToMany - 如何从数据库获取特定对象?

java在类层次结构中强制执行单例

java - 在 Hibernate 3.6.10.Final + c3p0 + struts2 中打开新连接时关闭连接

java - JPA 查询 : java. lang.IllegalArgumentException:至少提供 1 个参数,但查询中仅存在 0 个参数

java - 测试环境中的 Spring Boot PropertySources

java - Spring Boot内容类型 'multipart/form-data;boundary=--------------------------#;charset=UTF-8'不支持

java - 在测试中找不到保存的实体