Spring BootでJPAの設定
Spring Bootでデータベースを利用するために、JPAの設定をしようと思います。
そもそもJPAとは「Java Persistence API(Javaの永続化のAPI)」の略であり、Javaの純正技術として浸透しているORMの仕様です。
なので、実際にはORMの技術で実装されたライブラリ(いわゆるプロバイダ)を使用します。
有名なライブラリとしてはHibernateなどがありますね。
Spring Bootでは、Hibernateの技術を駆使したライブラリとしてSpring Data JPAが用意されており、今回はこれを設定します。
Spring Data JPAのライブラリのインストール
まずはpom.xmlに以下を追加してSpring Data JPAのライブラリをインストールしましょう。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
また、JavaアプリケーションからMySQLに接続するために、
JDBCドライバのインストールもしましょう。
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
scopeのruntimeは、実行時のみに必要な場合の指定で、JDBCドライバの場合はruntimeを使うことが普通です。
あまり深く考えず、上記のように設定してください。
アプリケーションの起動
上記の状態でアプリケーションを起動させてください。
そうすると、以下のようなエラーが発生します。
*************************** APPLICATION FAILED TO START *************************** Description: Cannot determine embedded database driver class for database type NONE Action: If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active). Process finished with exit code 1
DB接続のライブラリはあるが、設定情報が書かれていないために、
どこに接続したら良いのかわからないと言っていますね。
DB接続の設定は、src/main/resources以下にapplication.ymlか、または、application.propertiesを作成します。
application.ymlに記載する場合は以下のようになります。
spring: datasource: url: jdbc:mysql://localhost/test_database?useSSL=false username: 環境ごとのユーザ名 password: 環境ごとのパスワード driverClassName: com.mysql.jdbc.Driver
urlの末尾にある「?useSSL=false」はSSL接続をするか否かの設定ですが、
SSL接続をしない場合は基本的に指定は不要ですが、
実行時にWARNINGのメッセージが大量に出て不気味なのでfalseの指定をすることにしました。
これでアプリケーションを起動し、エラーなどが発生しなければひとまず設定はOKです。
ちなみにapplication.propertiesに設定する場合は、以下のように記載してください。
spring.datasource.url=jdbc:postgresql://localhost:3306/test_database spring.datasource.username=環境ごとのユーザ名 spring.datasource.password=環境ごとのパスワード spring.datasource.driver-class-name=com.mysql.jdbc.Driver
まとめ
上記の手順でSpring Boot JPAの設定は完了しました。
あくまでローカル環境の開発用の設定になるので、本番環境なので使う場合には、application-production.ymlやapplication-production.propertiesを作成する必要があります。
それはまた別な機会で。。。
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者: 株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/21
- メディア: 大型本
- この商品を含むブログ (1件) を見る
はじめてのSpring Boot―スプリング・フレームワークで簡単Javaアプリ開発 (I・O BOOKS)
- 作者: 槙俊明
- 出版社/メーカー: 工学社
- 発売日: 2016/09/01
- メディア: 単行本
- この商品を含むブログ (1件) を見る
- 作者: Craig Walls
- 出版社/メーカー: Manning Publications
- 発売日: 2016/01/03
- メディア: ペーパーバック
- この商品を含むブログを見る
はじめてのSpring Boot―「Spring Framework」で簡単Javaアプリ開発 (I・O BOOKS)
- 作者: 槇俊明
- 出版社/メーカー: 工学社
- 発売日: 2014/11/01
- メディア: 単行本
- この商品を含むブログ (8件) を見る