我是春天的新人。我正在尝试使用H2数据库和JDBC (不是JPA/Hibernate)。
因此,对于Spring,当我添加这些依赖项时:
spring-boot-starter-webspring-boot-starter-data-jpah2并将此属性变为true:spring.h2.console.enabled=true
创建了数据库mem:testdb,我可以在:localhost:8080/h2-console连接到它。
但是,当我将jpa依赖项更改为:
spring-boot-starter-data-jdbc数据库未创建,我收到以下错误消息:
Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 (Help)
因此,我想知道为什么它不能与JDBC一起工作,以及您是否知道一个解决方案来使它工作。
我在web上找到了两篇文章,它们似乎可以使用JDBC创建数据库:
更新:
我试着在家里用我的个人电脑做同样的事情,而且它能工作.
我不知道为什么它不工作的电脑,虽然它与JPA工作。
在日志中,它遗漏了以下几行:
com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:testdb'
UPDATE2 :
我找到了解决办法:
正如我所说的,我正在使用引导项目。在作业pc中,我无法使用Spring的最后一个版本(2.2.4),所以我选择了2.1.12
在这个版本中,它适用于JPA,而不是JDBC.
发布于 2020-02-06 09:17:34
我找到了解决办法:
正如我所说的,我正在使用引导项目。在作业pc中,我无法使用Spring的最后一个版本(2.2.4),所以我选择了2.1.12
版本Spring Boot
在这个版本中,它适用于JPA,而不是JDBC.
发布于 2020-02-05 16:38:36
来自文档
要自动配置嵌入式数据库,需要依赖spring。
弹簧-启动-启动-数据-jpa和spring-boot-starter data-jdbc通过其对spring-boot-starter jdbc的依赖获得spring。
这意味着对于这两个依赖项,h2将自动配置。
更新:
对于这两种配置,我都可以使用http://localhost:8080/h2-console/访问db
而当spring应用程序启动时,您将得到一个类似的日志。
2020-02-05 01:27:16.135[0;39m [32m INFO[0;39m [35m55966[0;39m [2m---[0;39m [2m[ main][0;39m [36mo.s.b.a.h2.H2ConsoleAutoConfiguration [0;39m [2m:[0;39m H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:testdb'发布于 2020-02-05 15:51:58
您提供的这两个链接都允许我创建具有以下依赖项的spring引导应用程序: Web、JDBC、H2、DevTools。如果将‘spring starter jdbc’依赖更改为‘spring starter jpa’,那么一切都是以相同的方式工作的,例如创建和访问H2数据库。确保在application.properties文件中在这两种情况下指定了相同的配置,“spring.datasource.url”没有被更改。
https://stackoverflow.com/questions/60079005
复制相似问题