2017-08-03 230 views
0

有没有办法在应用程序中更改即将完成的数据库?我正在解决很多在H2中不存在的问题。例如ALTER TABLE yourtable AUTO_INCREMENT = 1;不起作用,相反,我不得不使用重启时的操作与MySQL版本不一样。此外,现在我遇到了datediff问题。那么可以在正在进行的应用程序中更改数据库吗?将Spring Boot中的嵌入式数据库从H2更改为MySQL

+0

任何事情都可能 – andrewdleach

+0

我该如何做到这一点?我试图改变我的POM依赖关系,并在application.properties中添加信息,但它没有奏效。 – elec

+0

好吧,没有任何你尝试过的例子,很难给你有用的反馈。我会编辑你的问题,包括你刚刚在评论中与我分享的内容,以及你的POM和任何其他相关的java文件的副本 – andrewdleach

回答

2

是的,你可以。 包括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将为您运行该文件。

相关问题