首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >H2数据库是用spring-boot-starter data-jpa创建的,而不是使用spring-boot-starter data-jdbc创建的。

H2数据库是用spring-boot-starter data-jpa创建的,而不是使用spring-boot-starter data-jdbc创建的。
EN

Stack Overflow用户
提问于 2020-02-05 15:23:51
回答 3查看 1.7K关注 0票数 0

我是春天的新人。我正在尝试使用H2数据库和JDBC (不是JPA/Hibernate)。

因此,对于Spring,当我添加这些依赖项时:

  • spring-boot-starter-web
  • spring-boot-starter-data-jpa
  • h2

并将此属性变为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

版本Spring Boot

在这个版本中,它适用于JPA,而不是JDBC.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-06 09:17:34

我找到了解决办法:

正如我所说的,我正在使用引导项目。在作业pc中,我无法使用Spring的最后一个版本(2.2.4),所以我选择了2.1.12

版本Spring Boot

在这个版本中,它适用于JPA,而不是JDBC.

票数 0
EN

Stack Overflow用户

发布于 2020-02-05 16:38:36

来自文档

要自动配置嵌入式数据库,需要依赖spring。

弹簧-启动-启动-数据-jpaspring-boot-starter data-jdbc通过其对spring-boot-starter jdbc的依赖获得spring。

这意味着对于这两个依赖项,h2将自动配置。

更新:

对于这两种配置,我都可以使用http://localhost:8080/h2-console/访问db

而当spring应用程序启动时,您将得到一个类似的日志。

代码语言:javascript
复制
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'
票数 1
EN

Stack Overflow用户

发布于 2020-02-05 15:51:58

您提供的这两个链接都允许我创建具有以下依赖项的spring引导应用程序: Web、JDBC、H2、DevTools。如果将‘spring starter jdbc’依赖更改为‘spring starter jpa’,那么一切都是以相同的方式工作的,例如创建和访问H2数据库。确保在application.properties文件中在这两种情况下指定了相同的配置,“spring.datasource.url”没有被更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60079005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档