カテゴリ: Spring 更新日: 2025/12/10

Spring BootでローカルDBに接続する方法を解説!PostgreSQLとMySQLの設定例まとめ

Spring BootのローカルDB接続テンプレ:PostgreSQL/MySQL の設定例
Spring BootのローカルDB接続テンプレ:PostgreSQL/MySQL の設定例

先生と生徒の会話形式で理解しよう

生徒

「Spring Bootでローカル環境のデータベースに接続するには、どうすればいいんですか?」

先生

「ローカルでPostgreSQLやMySQLを使う場合、application.propertiesに必要な設定を書くだけで簡単に接続できますよ。」

生徒

「なるほど。じゃあ、それぞれの設定の書き方を教えてもらえますか?」

先生

「もちろんです。PostgreSQLとMySQLの両方で解説していきましょう。」

1. Spring Bootでローカルデータベースに接続する準備

1. Spring Bootでローカルデータベースに接続する準備
1. Spring Bootでローカルデータベースに接続する準備

Spring Bootでは、ローカル環境でPostgreSQL(ポストグレスキューエル)やMySQL(マイエスキューエル)といったリレーショナルデータベースに簡単に接続することができます。事前に以下の準備をしておきましょう。

  • ローカル環境にPostgreSQLまたはMySQLがインストール済みであること
  • 対象のデータベースとユーザーが作成済みであること
  • Spring Bootプロジェクトに依存ライブラリを追加済みであること

2. PostgreSQLに接続する場合の設定例

2. PostgreSQLに接続する場合の設定例
2. PostgreSQLに接続する場合の設定例

まずは、PostgreSQLに接続するためのapplication.propertiesファイルの設定例を見てみましょう。ローカルのPostgreSQLに接続するには、以下のように記述します。


spring.datasource.url=jdbc:postgresql://localhost:5432/sampledb
spring.datasource.username=postgres
spring.datasource.password=your_password
spring.datasource.driver-class-name=org.postgresql.Driver

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

上記では、localhostの5432ポートにあるsampledbというデータベースに、postgresユーザーで接続しています。

3. MySQLに接続する場合の設定例

3. MySQLに接続する場合の設定例
3. MySQLに接続する場合の設定例

次に、MySQL(MariaDBでも同様)のローカル接続設定です。こちらもapplication.propertiesファイルに記述します。


spring.datasource.url=jdbc:mysql://localhost:3306/sampledb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

serverTimezone=UTCの指定は、MySQL 8系でタイムゾーンの警告が出るのを防ぐために入れています。

4. Mavenで必要な依存関係を追加する

4. Mavenで必要な依存関係を追加する
4. Mavenで必要な依存関係を追加する

Spring Bootでデータベースに接続するには、Mavenプロジェクトであればpom.xmlに依存ライブラリを追加する必要があります。

PostgreSQLの依存関係は以下のようになります。


<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.6.0</version>
</dependency>

MySQLの依存関係はこちらです。


<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

5. application.ymlでの設定例

5. application.ymlでの設定例
5. application.ymlでの設定例

application.propertiesの代わりにapplication.ymlを使うことも可能です。可読性を高めたい場合はこちらをおすすめします。

PostgreSQLのapplication.ymlは以下のようになります。


spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/sampledb
    username: postgres
    password: your_password
    driver-class-name: org.postgresql.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect

6. Spring Bootの自動設定と挙動確認

6. Spring Bootの自動設定と挙動確認
6. Spring Bootの自動設定と挙動確認

Spring Bootでは、上記の設定さえ整っていれば、アプリケーション起動時に自動的にデータベースへ接続し、テーブルの自動作成やデータの永続化が行えるようになります。

接続が成功しているかは、ログに次のような出力があるかで確認できます。


HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
HHH000397: Using ASTQueryTranslatorFactory

また、起動中にエラーが出た場合は、ポート番号やユーザー名・パスワード・データベース名が正しいか、ファイアウォールでブロックされていないかを確認しましょう。

7. よくあるエラーとその対処法

7. よくあるエラーとその対処法
7. よくあるエラーとその対処法

Spring Bootでローカルのデータベースに接続する際、以下のようなエラーに遭遇することがあります。

  • org.postgresql.util.PSQLException: 認証失敗 → ユーザー名・パスワードの誤りを確認
  • Communications link failure: MySQLが起動していない、またはポートが違う
  • Unknown database: 該当するデータベースが存在していない → 事前に作成する必要あり

これらのエラーは、設定ファイルのタイポやデータベース側の設定ミスで発生することが多いので、焦らずひとつひとつ確認しましょう。

8. テスト用のEntityとRepositoryの例

8. テスト用のEntityとRepositoryの例
8. テスト用のEntityとRepositoryの例

データベース接続を確認するために、簡単な@EntityJpaRepositoryを用意すると良いでしょう。


@Entity
public class User {
    @Id
    @GeneratedValue
    private Long id;

    private String name;
}

public interface UserRepository extends JpaRepository<User, Long> {
}

これで起動後に自動的にuserテーブルが作成されれば、接続成功です。

まとめ

まとめ
まとめ

Spring Bootでローカル環境のデータベースに接続するための設定は、基本的な記述を正しく押さえることでとても扱いやすくなります。とくにPostgreSQLとMySQLは業務でも広く使われているため、接続URLの書き方、ユーザー名やパスワードの指定、ドライバーの設定、さらにHibernateの方言(ダイアレクト)の設定など、環境に応じた正しい記述を理解することが重要です。どちらのデータベースもSpring Bootの自動設定と非常に相性が良く、必要な依存関係を追加し、`application.properties`や`application.yml`に記述するだけで、テーブルの作成やSQLログの表示が簡単に行えます。 また、接続に関するエラーの多くはポート番号・データベース名・資格情報の誤りが原因であることが多いため、設定を丁寧に確認する習慣が安定した開発に直結します。実務では開発環境でPostgreSQLを利用し、本番ではMySQLを採用するケースなどもあり、それぞれの設定に柔軟に対応できる力が求められます。Spring Bootでは環境ごとに設定ファイルを切り替えることも容易であるため、ローカルとステージング、本番の接続先を使い分ける際にも重要な知識となっていきます。 また、接続確認のために簡単なEntityクラスやRepositoryを作成して動作を確かめることは、Spring BootとJPAの理解を深めるうえでも有効です。テーブルが正しく自動生成され、正常に永続化処理が行えるかを確認することで、設定ミスを素早く発見でき、開発全体の効率を高めることにもつながります。このようにローカルDBの接続設定は、アプリケーション開発の基盤となる重要な工程であり、確実に押さえておくことでより高度な開発作業にスムーズに進むことができます。

接続確認に使えるサンプルコード


@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@Entity
public class Product {
    @Id
    @GeneratedValue
    private Long id;

    private String title;
}

public interface ProductRepository extends JpaRepository<Product, Long> {
}

上記のようなEntityとRepositoryを用意し、アプリケーション起動後にデータベース上へproductテーブルが作成されていれば、Spring Bootによるローカルデータベースへの接続は正しく機能しています。他にもSQLログを表示させる設定を行えば、実際にどのようなクエリが発行されているのかを確認でき、アプリケーション内部の動作理解がより深まります。 PostgreSQLとMySQLではドライバーやダイアレクトの指定が異なるため、それぞれの特徴を理解したうえで設定を正しく書き分けることが安定した開発に欠かせません。ローカル開発環境は安全に検証できる場なので、設定変更や接続テストを繰り返し行いながら理解を深めていくことが成長につながります。

先生と生徒の振り返り会話

生徒

「PostgreSQLとMySQLの設定の違いがよく分かりました。接続URLやドライバーの記述を間違えないことが大事なんですね。」

先生

「その通りです。URLの書き方、ポート番号、ユーザー名、パスワード、ダイアレクトの指定などが正しく書けていれば、Spring Bootはとてもスムーズにデータベースへ接続してくれますよ。」

生徒

「EntityとRepositoryを使った接続確認も実践的ですね。テーブルがちゃんと作られると安心できます。」

先生

「確かに動作確認は大切です。Spring Bootの自動設定を理解しておくと、アプリケーションの構造や処理の流れも自然とつかめるようになりますから、今後の開発にも役立ちますよ。」

生徒

「ありがとうございました!自分の環境でもPostgreSQLとMySQLの両方で試してみます!」

Springの学習を効率化したい方へ

この記事の内容をもっと深く知るには、以下の入門書が最適です。

Spring Framework超入門をAmazonで見る
カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「Like」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Java
JavaのLocalDateTimeクラスとplusMinutesメソッドを完全ガイド!初心者でもわかる分単位の時間操作
新規投稿
New4
Spring
SpringDataJPAのJPAクエリメソッド「IsNotNull」と「NotNull」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.3
Java&Spring記事人気No3
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.4
Java&Spring記事人気No4
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.5
Java&Spring記事人気No5
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.6
Java&Spring記事人気No6
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.7
Java&Spring記事人気No7
Spring
SpringのModelクラスとaddAttributeメソッドの使い方を完全ガイド!初心者でも安心
No.8
Java&Spring記事人気No8
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説