当前位置: 首页 > 知识库问答 >
问题:

Spring Boot默认H2 jdbc连接(和H2控制台)

司徒云
2023-03-14

我只是试图查看嵌入式H2数据库的H2数据库内容,当我没有在application.properties中指定任何内容并从mvn spring:run开始时,spring-boot创建了嵌入式H2数据库。我可以看到hibernate JPA正在创建表,但是如果我试图访问下面URL处的h2控制台,数据库没有表。

http://localhost:8080/console/

我看到这样的建议:查看Spring启动的嵌入式H2数据库的内容

但是我不知道将建议的XML放入spring-boot的何处,即使我放了,我也不希望在配置外部数据库时h2console仍然可用,因此我更有可能需要使用某种条件代码来处理这个问题(或者,在最理想的情况下,我只在激活maven配置文件时包含H2),允许spring自动处理它。

有没有人有一些示例代码来说明如何让H2控制台在引导状态下工作(以及找出spring正在使用的jdbc连接字符串是什么的方法)?

共有1个答案

宋腾
2023-03-14

这就是我如何使H2控制台在spring-boot中与H2一起工作的方法。我不确定这是否正确,但由于没有人提供一个解决方案,所以我建议这是最好的方法。

在我的例子中,我为数据库选择了一个特定的名称,以便在启动H2控制台时可以输入一些内容(在本例中为“az”)。我认为所有这些都是必需的,尽管省略spring.jpa.database-platform似乎没有什么坏处。

在Application.Properties中:

spring.datasource.url=jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

在application.java(或某些配置)中:

@Bean
public ServletRegistrationBean h2servletRegistration() {
    ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet());
    registration.addUrlMappings("/console/*");
    return registration;
}

然后您可以访问{server}/console/处的H2控制台。输入此作为JDBC URL:JDBC:h2:mem:az

 类似资料:
  • 我也搜索了一些谷歌解决方案,但它不工作输入图像描述在这里

  • 使用和启动H2管理系统 H2 管理系统让你能够通过一个浏览器对 H2 的 SQL 数据库进行管理操作。H2 管理系统不仅可以连接 H2 数据库,也可以连接其他支持 JDBC API 的数据库。 这是一个 C/S 应用,在服务器和客户端(浏览器)上都要运行 H2 的管理程序。根据平台不同,H2 管理系统支持多种启动应用的方式: 操作系统 启动 Windows 点击 [Start], [All Pro

  • Postgresql服务器在我的localhost系统上运行并验证5432: 如果我输入:我会得到以下响应: psql:无法连接到服务器:没有这样的文件或目录 服务器是否在本地运行并接受Unix域套接字“/var/run/postgresql/. s上的连接。PGSQL.5432”? 如果我键入,它会工作并给我一个数据库列表。 文件完全打开,显示: 值“local”仅适用于Unix域套接字连接:

  • 的复制构造函数和赋值操作符的情况下,便编译器会为我们生成默认的复制构造函数和赋值操作符,以内存复制的形式完成对象的复制。虽然这种机制可以为我们节省很多编写复制构造函数和赋值操作符的时间,但是在某些情况下,比如我们不希望对象被复制,这种机制却是多此一举。) 关于类的“禁止复制”,现在可以使用delete关键字完美地直接表达: class X { // … X& operator=(c

  • 我对一个应用程序的JPA层进行了几个单元测试。这个JPA层由JPA实体和一个提供持久化实体所需的基本API的服务组成。单元TET直接使用javax.Persistence类来处理PersistenceManager。然后测试持久性API,我可以在日志中看到创建表和序列等的SQL语句。 persistence.xml文件的相关部分如下所示: 我已经下载了Windows安装程序H2 1.4.200,并

  • 上一节我们设置了默认地图和关卡,这一节我们来设置默认的角色和控制器和默认地图不一样,默认角色和控制器需要设置在 GameMode 里面。 1) 打开 VS 编辑器, 打开“APlayingGameModeBase.h”文件,声明一个构造函数: 2) 在“APlayingGameModeBase.cpp”文件中创建构造函数实现,然后在 #include "PlayingGameModeBase.h"