【Spring Boot】DataSource の設定をやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Spring Boot で DB に接続するとき、
DataSource(データソース) の設定が必要になります。

  • application.yml に何を書けばいいの?
  • URL の書き方は?
  • ユーザー名やパスワードはどこに?
  • 起動しないときはどこを見る?

こういった疑問は、
DataSource の仕組みと設定の基本を理解すると一気に解決します。

この記事では、DataSource の設定を
やさしく・実務寄り で整理していきます。


DataSource とは

一言でいうと、

「DB との接続情報をまとめた“入り口”」

です。

Spring Boot は DataSource を使って

  • DB への接続
  • コネクションプールの管理
  • トランザクション管理 を行います。

基本の設定(MySQL の例)

YAML
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/sample
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

これだけで Spring Boot が自動で DataSource を作ってくれます。


DB ごとの URL の書き方

MySQL

jdbc:mysql://localhost:3306/dbname

PostgreSQL

jdbc:postgresql://localhost:5432/dbname

SQLServer

jdbc:sqlserver://localhost:1433;databaseName=dbname

H2(組み込み DB)

jdbc:h2:mem:testdb

URL の書き方が間違っていると、
起動はするけど接続できない という状態になります。


DataSource 設定でよくあるつまずき

URL のスペルミス

例:jdbc:mysql//(コロン抜け)

ポート番号が違う

MySQL → 3306
PostgreSQL → 5432
SQLServer → 1433

DB が起動していない

ログにこう出ます:

Communications link failure

ユーザー名・パスワードが違う

Access denied for user

driver-class-name の書き間違い

MySQL は com.mysql.cj.jdbc.Driver が正しい。


DataSource が読み込まれないときのチェックポイント

application.yml の階層が正しいか

YAML
spring:
  datasource:
    url: ...

インデントがずれると読み込まれません。

プロファイルが dev / prod で切り替わっていないか

application-dev.yml に書いたのに dev が有効になっていないパターン。

依存関係が入っているか

MySQL の場合:

XML
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-j</artifactId>
</dependency>

依存がないと DataSource が作れません。

DB が起動しているか

Docker の場合は docker ps で確認。


実務でよくある DataSource の設定パターン

ローカル開発(dev)

YAML
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/sample
    username: root
    password: root

本番(prod)

YAML
spring:
  datasource:
    url: jdbc:mysql://prod-db:3306/sample
    username: appuser
    password: ${DB_PASSWORD}

本番では環境変数を使うのが一般的です。


DataSource の動きをふわっと理解する

Spring Boot は起動時に:

  1. application.yml を読む
  2. spring.datasource の値を取得
  3. DataSource(HikariCP)を作成
  4. DB に接続
  5. 成功したらアプリ起動

という流れで動きます。


DataSource のエラーをログで見分ける

URL のミス

The connection string is invalid

DB が起動していない

Communications link failure

認証エラー

Access denied for user

ドライバがない

Driver class not found

ログの最後の数行を見るだけで、
原因がほぼ特定できます。


DataSource をもっと活かすポイント

コネクションプールの設定

YAML
spring:
  datasource:
    hikari:
      maximum-pool-size: 100

SQL ログを出す

YAML
spring.jpa.show-sql: true

プロファイルごとに設定を分ける

application-dev.yml
application-prod.yml


まとめ

DataSource の設定は、

「DB の URL・ユーザー・パスワードを正しく書く」

これがすべてです。

  • URL の書き方
  • ポート番号
  • ユーザー名・パスワード
  • driver-class-name
  • application.yml の階層
  • プロファイルの切り替え
  • 依存関係の有無

難しく聞こえますが、
「URL → 認証 → YAML → 依存」
の順に確認すれば十分です。


decopon
decopon

DataSource の設定は最初こそ難しく見えますが、
“よくあるミスのパターン” を知っているだけで
落ち着いて対処できるようになります。
あなたの開発が、今日より少しだけ楽になりますように。

moco
moco

DB への“入り口”って感じだね…
正しく書けばすっとつながるんだね。

コメント

タイトルとURLをコピーしました