将Spring Boot中的嵌入式数据库从H2更改为MySQL
问题描述:
有没有办法在应用程序中更改即将完成的数据库?我正在解决很多在H2中不存在的问题。例如ALTER TABLE yourtable AUTO_INCREMENT = 1;不起作用,相反,我不得不使用重启时的操作与MySQL版本不一样。此外,现在我遇到了datediff问题。那么可以在正在进行的应用程序中更改数据库吗?将Spring Boot中的嵌入式数据库从H2更改为MySQL
答
是的,你可以。 包括MySQL的依赖在你的POM文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
为MySQL创建资源库接口,扩展JpaRepository:
public interface SqlDAO extends JpaRepository<YourPOJO,Long>{
// you can use JpaRepository methods out of the box or write custom ones
}
添加属性您的SQL中,可以使用的.properties或.yml文件。我使用yaml:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/coolDB
username: root
password: 123456
jpa:
hibernate:
ddl-auto: update
show-sql: true
不要忘记运行MySql数据库本身,你很好去。 您的服务现在应该使用您的存储库接口与Sql进行通信。
这里是JPA文档,以及如何创建自定义的方法链接: https://docs.spring.io/spring-data/jpa/docs/1.4.1.RELEASE/reference/html/jpa.repositories.html
编辑:您必须手动创建在MySQL数据库中的控制台,春天不会为你做。您可以将.sql文件包含到资源目录中以创建虚拟数据或进一步设置sql设置,Spring将为您运行该文件。
任何事情都可能 – andrewdleach
我该如何做到这一点?我试图改变我的POM依赖关系,并在application.properties中添加信息,但它没有奏效。 – elec
好吧,没有任何你尝试过的例子,很难给你有用的反馈。我会编辑你的问题,包括你刚刚在评论中与我分享的内容,以及你的POM和任何其他相关的java文件的副本 – andrewdleach