Java Spring引导默认H2 jdbc连接(和H2控制台)
我只是试图查看spring boot创建的嵌入式H2数据库的H2数据库内容,而我没有在我的Java Spring引导默认H2 jdbc连接(和H2控制台),java,spring,spring-boot,h2,spring-jdbc,Java,Spring,Spring Boot,H2,Spring Jdbc,我只是试图查看spring boot创建的嵌入式H2数据库的H2数据库内容,而我没有在我的应用程序中指定任何内容。我可以看到hibernate JPA正在创建表,但是如果我尝试访问位于下面URL的h2控制台,则数据库没有表 http://localhost:8080/console/ 我看到这样的建议: 但是我不知道在spring boot中把建议的XML放在哪里,即使我这样做了,我也不希望在配置外部数据库时,h2console不再可用,所以我更可能需要使用某种条件代码来处理这个问题(或者允
应用程序中指定任何内容。我可以看到hibernate JPA正在创建表,但是如果我尝试访问位于下面URL的h2控制台,则数据库没有表
http://localhost:8080/console/
我看到这样的建议:
但是我不知道在spring boot中把建议的XML放在哪里,即使我这样做了,我也不希望在配置外部数据库时,h2console
不再可用,所以我更可能需要使用某种条件代码来处理这个问题(或者允许spring在最理想的情况下自动处理它,我只在激活maven概要文件时包含H2)
有没有人有一些示例代码来说明如何让H2控制台在引导中工作(以及找到spring使用的jdbc连接字符串是什么的方法)?这就是我如何让H2控制台在带有H2的spring boot中工作的。我不确定这是否正确,但由于没有其他人提供解决方案,因此我建议这是最好的方法
在我的例子中,我为数据库选择了一个特定的名称,以便在启动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
spring.h2.console.enabled=true //Enable the console.
spring.h2.console.path=/h2-console //Path at which the console will be available.
在Application.java(或某些配置)中:
然后您可以访问位于{server}/console/的H2控制台。将其作为JDBC URL输入:JDBC:H2:mem:AZ
基本上,我正确的JDBC URL是:JDBC:h2:mem:testdb
从Spring Boot1.3.0.M3
开始,h2控制台可以自动配置
先决条件是:
- 您正在开发一个web应用程序
- 已启用Spring引导开发工具
- H2在类路径上
即使不使用Spring引导开发工具,也可以通过将Spring.h2.console.enabled
设置为true
查看部分文档以了解所有详细信息
请注意,以这种方式配置时,控制台可从以下位置访问:
H2 Web控制台(H2控制台属性):
将以上两行添加到我的application.properties文件中就足以使用默认用户名(sa)和密码(空,如在ui提示时不要输入密码)访问H2数据库web控制台。我在/resources/application.properties中只有以下属性。运行spring boot后,使用此URL(),H2控制台中的表是可见的,可以读取以查看表数据,您也可以运行简单的SQL命令。有一点,在java代码中,在获取数据时,列名是大写的,即使schema.SQL使用小写名称:)
一个类似的答案和一步一步的指导
向您的pom.xml
或build.gradle
Maven
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
从http://localhost:8080/h2-控制台/
指定jdbc:h2:mem:testdb
作为jdbc URL
您应该将项目中指定的实体视为表
为了获得这些表,您只需创建两个sql文件schema.sql(用于创建表)和data.sql(用于创建表的数据)。这些文件将放在src/main/resources文件夹中。SpringBoot自动检测它们,并在运行时处理其余部分
如果您在项目中使用的数据库超过2个,请确保使用特定的文件,如(schema-h2.sql——对于h2-DB,schema-oracle.sql——对于oracle-DB)。data.sql也要遵循同样的方法
还要确保通过在schema.sql中添加drop table语句作为第一条语句来删除表。避免附加重复记录
这里是spring boot的链接
我的application.properties如下
spring.datasource.url=jdbc:h2:~/file/Shiva;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.platform=h2
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.datasource.initialize=true
spring.error.whitelabel.enabled=true
spring.h2.console.path=/console
spring.datasource.continue-on-error=true
spring.jpa.hibernate.ddl-auto=create
spring.hibernate.hbm2ddl.auto=update
spring.hibernate.show_sql=true
您可以按照以下链接中的步骤操作
如果您使用Spring Boot的开发工具,默认情况下,它附带H2控制台。可以从/h2控制台/访问它。在登录界面上,对于输入JDBC URL
使用valueJDBC:h2:mem:testdb
。注意mem
字符串
如果不使用Spring Boot的开发工具,可以使用Spring.h2.console.enabled=true
在application.properties
中启用控制台。这将在/h2 console
下启用控制台。如果要更改URL,则可以使用spring.h2.console.path=my_console\u path
添加另一个条目
默认模式名称是testdb
更多详细信息请参见。我发现,对于spring boot 2.0.2.RELEASE,在POM文件中配置spring boot starter数据jpa和com.H2数据库不足以让H2控制台工作。您必须如下配置spring boot devtools。
你也可以在这篇文章中按照Aaron Zeckoski的指示去做
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
org.springframework.boot
弹簧靴开发工具
真的
登录h2控制台时,使用jdbc:h2:mem:testdb作为路径
显然,如果您更改了Spring引导属性,那么您的数据源可能会有所不同,但似乎您正在努力寻找默认值。就这些!登录H2后,您将看到您的模式。检查spring application.properties
url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB\u关闭\u打开\u退出=错误
这里testdb是数据库定义的
确保h2控制台在连接时具有相同的值,否则它将连接到默认数据库
用于弹簧靴2.1.1dependencies {
compile("org.springframework.boot:spring-boot-devtools")
}
spring.datasource.url=jdbc:h2:~/file/Shiva;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.platform=h2
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.datasource.initialize=true
spring.error.whitelabel.enabled=true
spring.h2.console.path=/console
spring.datasource.continue-on-error=true
spring.jpa.hibernate.ddl-auto=create
spring.hibernate.hbm2ddl.auto=update
spring.hibernate.show_sql=true
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2020-08-18 21:12:32.664 INFO 63256 --- [ main] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:eaa9d6da-aa2e-4ad3-9e5b-2b60eb2fcbc5'