2017-08-03 1 views
0

ほとんどの場合、アプリケーションでデータベースを変更する方法はありますか?私は、MySQLで発生しないH2に関する多くの問題を抱いています。たとえば、ALTER TABLE yourtable AUTO_INCREMENT = 1;動作しない代わりに私はMySQLのバージョンと同じくらいうまく動作しない再起動を使用しなければならなかった。また、今私はdatediffに問題があります。したがって、進行中のアプリケーションでデータベースを変更することは可能ですか?Springブートでの組み込みデータベースをH2からMySQLに変更する

+0

何でも可能です – andrewdleach

+0

どうすればいいですか?私は、POMの依存関係を変更してapplication.propertiesに情報を追加しようとしましたが、うまくいきませんでした。 – elec

+0

あなたが試したことの例はまったくなく、あなたに役立つフィードバックを与えるのは難しいです。あなたの質問を編集して、あなたがコメントに私と共有したものだけでなく、あなたのPOMと他の関連するjavaファイルのコピー – andrewdleach

答えて

2

はいできます。 は、あなたのポンポンファイルにMySQLの依存関係を含める:

<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> 

JpaRepositoryを拡張mysqlのためのリポジトリのインターフェースを作成します。

public interface SqlDAO extends JpaRepository<YourPOJO,Long>{ 
    // you can use JpaRepository methods out of the box or write custom ones 
} 

あなたは.propertiesファイルや.ymlファイルを使用することができ、あなたのSQLのプロパティを追加します。私は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がそれを実行します。

関連する問題