在 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 和 UserDetailsService。
那么,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 应用程序中启动无限循环的方式有啥问题吗?