在 Spring Boot 中,啥告诉应用程序使用数据库? [复制]

Posted

技术标签:

【中文标题】在 Spring Boot 中,啥告诉应用程序使用数据库? [复制]【英文标题】:In Spring Boot what tells the app to use a database? [duplicate]在 Spring Boot 中,什么告诉应用程序使用数据库? [复制] 【发布时间】:2017-07-27 22:20:03 【问题描述】:

我有一个 Maven 拉入的小型 Spring Boot 项目

spring-boot-starter-data-jpa spring-boot-starter-data-rest h2

和其他人。我没有任何 DataSource 引用,但有 JpaRepository 和 UserDetailsS​​ervice。

那么,Spring 库是如何决定使用 Hibernate(显示在控制台中)以及我猜是 H2?

我查看了这个*** conversation,但我自己的控制台日志没有“h2”或“数据库”日志语句。

【问题讨论】:

Spring Boot 为您自动配置了许多东西。如果您在属性文件中指定数据源,它将知道如何实例化必要的组件。在文档docs.spring.io/spring-boot/docs/current/reference/html/… 上查看更多信息 - 对于 H2,您甚至不需要做那么多。从文档 Spring Boot 可以自动配置嵌入式 H2、HSQL 和 Derby 数据库。您无需提供任何连接 URL,只需包含对您要使用的嵌入式数据库的构建依赖项即可。 【参考方案1】:

您应该将“schema.sql”添加到 src/main/resource 中。它必须与您的实体类匹配。弹簧靴将负责其余的工作。 你最好把它写到你的application.properties中

spring.jpa.hibernate.ddl.auto=create-drop

您也可以使用 mysql 而不是 h2。删除 h2 依赖,添加 mysql 连接器依赖并将这些添加到 application.properties

spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

【讨论】:

以上是关于在 Spring Boot 中,啥告诉应用程序使用数据库? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 Spring Boot 使用另一个数据库进行测试?

这种在 Spring Boot 应用程序中启动无限循环的方式有啥问题吗?

阿里P9告诉你 Spring Boot 2.0正式发布,升还是不升呢?

spring-boot 2 优雅关闭网络

spring boot 结合啥前端框架

spring-boot 使用啥版本的 Jackson?