カテゴリ: Spring 更新日: 2025/09/18

Spring Bootでデータベースに接続するには?初心者でもわかるJDBCの基本

Spring Bootでデータベースに接続するには?初心者向けに解説
Spring Bootでデータベースに接続するには?初心者向けに解説

新人と先輩の会話形式で理解しよう

新人

「Spring Bootを使ってデータベースに接続したいんですけど、どうやればいいのかよく分かりません…」

先輩

「最初は混乱するよね。でもSpring Bootはデータベース接続が簡単にできるように工夫されてるから、基本を押さえれば安心だよ。」

新人

「JDBCってよく聞きますが、それも関係してるんですか?」

先輩

「うん、JDBCはデータベースとやり取りするための基本的な仕組みだよ。まずはSpring BootとJDBCの関係から見ていこう!」

1. Spring Bootとは?初心者向けにやさしく解説

1. Spring Bootとは?初心者向けにやさしく解説
1. Spring Bootとは?初心者向けにやさしく解説

Spring Boot(スプリングブート)は、Javaでアプリケーションを素早く開発できるようにするためのフレームワークです。初心者が難しい設定をしなくても簡単にWebアプリケーションを作成できるように、多くの機能があらかじめ用意されています。

特に「データベース接続」や「Webサーバーの起動」など、面倒な初期設定がほとんど不要なのが魅力です。

pleiades(プレアデス)を使えば、GUI操作でSpring Bootプロジェクトを作成できるので、初心者でも迷わず進められます。

Spring Bootを使うときに大事なのは、以下のようなポイントです。

  • 自動構成(Auto Configuration)で初期設定が簡単
  • 組み込みのTomcatサーバーで簡単に実行
  • データベース接続やJDBCの設定も最小限でOK

2. JDBCを使ったデータベース接続の全体像とは?

2. JDBCを使ったデータベース接続の全体像とは?
2. JDBCを使ったデータベース接続の全体像とは?

JDBC(ジェイディービーシー)とは、「Java Database Connectivity」の略で、Javaアプリケーションからデータベースに接続して操作するための仕組みです。Spring Bootでは、このJDBCをベースにして、データベース接続を簡単に行えるようにしています。

ここでは、Spring BootでJDBCを使ってデータベースに接続する流れを、初心者にも分かりやすく紹介します。

① データベースの準備

まず最初に、接続したいデータベース(MySQLやPostgreSQLなど)をインストール・起動しておきます。テスト用であればローカル環境に簡単なデータベースを用意すれば十分です。

② Spring Bootプロジェクトの作成

pleiades上で「Spring Starter Project」を選択し、新しいプロジェクトを作成します。ビルドツールはGradleを選びましょう。Mavenではなく、Gradleが指定されています。

③ JDBC依存関係の追加

プロジェクト作成時の依存関係選択画面で「JDBC」「Spring Web」「MySQL Driver(または他のDB Driver)」をチェックします。

生成されたbuild.gradleファイルには、次のような記述が自動で追加されます。


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    runtimeOnly 'com.mysql:mysql-connector-j'
}
④ application.propertiesで接続設定

Spring Bootでは、設定ファイルapplication.propertiesにデータベース接続情報を記述します。


spring.datasource.url=jdbc:mysql://localhost:3306/sampledb
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
⑤ 接続テストのコード

次に、JDBCを使ってデータベースからデータを取得する基本的なサンプルコードを用意します。@Controllerを使って画面に結果を表示する構成とします。


@Controller
public class UserController {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @GetMapping("/users")
    public String getUsers(Model model) {
        List<String> userList = jdbcTemplate.query(
            "SELECT name FROM users",
            (rs, rowNum) -> rs.getString("name")
        );
        model.addAttribute("users", userList);
        return "userlist";
    }
}

このようにして、JDBCとSpring Bootを使ったデータベース接続は比較的シンプルに構築できます。最初は構造が分かりにくいかもしれませんが、流れを理解すれば応用もスムーズになります。

次回は、pleiadesを使って実際にSpring Bootプロジェクトを作成する手順や、application.propertiesの設定の詳細、サンプルHTML画面との連携方法などをさらに深堀りしていきます。

3. JDBCとは何か?初心者向けにわかりやすく図解イメージ

3. JDBCとは何か?初心者向けにわかりやすく図解イメージ
3. JDBCとは何か?初心者向けにわかりやすく図解イメージ

JDBC(ジェイディービーシー)は、Javaプログラムからデータベースにアクセスするための標準的な仕組みです。たとえば、「ユーザー情報を登録する」「商品一覧を表示する」といった処理の裏側では、JDBCがデータベースとのやり取りを担当しています。

JDBCは、以下のような役割を果たしています。

  • Javaプログラムとデータベースの橋渡し
  • SQL文を実行して、データを取得・更新する
  • 接続の開始・終了を安全に行う

イメージしやすいように、簡単な図解にすると次のようになります。

【JDBCのイメージ】


  Javaプログラム
        ↓(SQL文)
     JDBCドライバ
        ↓(接続)
   データベースサーバー

JavaのコードからSQL文を送ると、JDBCドライバがその指示をデータベースに伝えます。そして、データベースが返してきた結果をJDBCが受け取り、Javaプログラムに返します。

このように、JDBCはJavaとデータベースの「通訳」のような役割を持っています。Spring Bootは、このJDBCの仕組みをうまくラップして、より簡単に扱えるようにしてくれます。

4. application.propertiesの基本的な設定方法

4. application.propertiesの基本的な設定方法
4. application.propertiesの基本的な設定方法

Spring Bootでは、接続情報や設定値をapplication.propertiesというファイルに記述します。このファイルは、プロジェクトのsrc/main/resourcesフォルダ内にあります。

データベースと接続するためには、次のような基本的な設定を行います。


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

各項目の意味を簡単に説明します。

  • spring.datasource.url:データベースの場所を指定します。
    例では、ローカルのMySQLサーバーにあるsampledbというデータベースに接続しています。
  • spring.datasource.username:データベースにログインするためのユーザー名です。
  • spring.datasource.password:そのユーザーのパスワードです。
  • spring.datasource.driver-class-name:使用するJDBCドライバのクラス名です。MySQLの場合はcom.mysql.cj.jdbc.Driverです。

これらの情報が正しく記載されていないと、Spring Bootアプリケーションはデータベースに接続できません。最初は間違えやすいので、スペルミスなどに注意しましょう。

また、application.propertiesに設定した内容は、自動的にSpring Bootが読み取ってくれるので、特別なコードを書く必要はありません。

5. データベース接続に必要な依存関係(Gradleで追加)

5. データベース接続に必要な依存関係(Gradleで追加)
5. データベース接続に必要な依存関係(Gradleで追加)

Spring BootでJDBCを使ったデータベース接続を行うためには、いくつかの依存関係(ライブラリ)をプロジェクトに追加する必要があります。

pleiadesでは、プロジェクト作成時にチェックボックスで「Spring Web」「JDBC」「データベースドライバ(例:MySQL)」を選択すれば、自動的にbuild.gradleに記述されます。

依存関係が追加されると、build.gradleファイルには以下のような内容が含まれます。


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    runtimeOnly 'com.mysql:mysql-connector-j'
}

ここで使われているそれぞれの依存関係の意味は次のとおりです。

  • spring-boot-starter-web:Webアプリケーションを作成するための基本的な機能が含まれています。@Controllerを使った画面表示にも必要です。
  • spring-boot-starter-jdbc:JDBCを使ったデータベース接続に必要なライブラリが含まれています。
  • mysql-connector-j:MySQLとJavaを接続するためのJDBCドライバです。他のデータベースを使う場合は、対応するドライバに変更する必要があります。

Gradleは、このbuild.gradleファイルを読み取って、必要なライブラリを自動的にダウンロードしてくれます。手動でファイルをダウンロードする必要はありません。

プロジェクト作成後に依存関係を変更した場合は、「Gradleのリフレッシュ」をpleiadesから行っておくと、正しく反映されます。

これで、Spring BootとJDBCを使ったデータベース接続の基本的な準備は完了です。次回は、実際にデータを操作するコードや、@Controllerと画面の連携について詳しく見ていきます。

6. サンプルコードで接続処理の流れを解説(Controller+Service+Repository)

6. サンプルコードで接続処理の流れを解説(Controller+Service+Repository)
6. サンプルコードで接続処理の流れを解説(Controller+Service+Repository)

Spring BootでJDBCを使ってデータベースに接続する場合、コードを役割ごとに分けると管理しやすくなります。ここでは初心者にもわかりやすいように、@Controller・Service・Repositoryの3つの構成に分けて、データ取得の処理を実装してみましょう。

① Controllerクラス(画面と処理の橋渡し)

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public String showUsers(Model model) {
        List<String> users = userService.getUserNames();
        model.addAttribute("userList", users);
        return "userlist";
    }
}
② Serviceクラス(ビジネスロジック担当)

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List<String> getUserNames() {
        return userRepository.findAllNames();
    }
}
③ Repositoryクラス(データベース操作担当)

@Repository
public class UserRepository {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public List<String> findAllNames() {
        String sql = "SELECT name FROM users";
        return jdbcTemplate.query(sql, (rs, rowNum) -> rs.getString("name"));
    }
}

この構成にすると、それぞれの役割が明確になるため、後から機能を追加したり修正したりする際もスムーズに対応できます。また、Spring Bootのおすすめ設計パターンにも適しています。

7. よくあるエラーとその対処法(接続失敗・URLミス・認証ミスなど)

7. よくあるエラーとその対処法(接続失敗・URLミス・認証ミスなど)
7. よくあるエラーとその対処法(接続失敗・URLミス・認証ミスなど)

Spring BootとJDBCでデータベース接続を試みる際、初心者がよくつまずくポイントをまとめておきます。ここでは代表的なエラーとその原因・対処方法を解説します。

① データベースに接続できない

エラーメッセージ例:


Communications link failure

このエラーは、データベースが起動していない、あるいは接続先のURLが間違っている場合に表示されます。

対処方法:

  • MySQLなどのデータベースが起動しているか確認する
  • spring.datasource.urlの値が正しいかチェック(ポート番号やデータベース名のスペルミスに注意)
② 認証エラー

エラーメッセージ例:


Access denied for user 'root'@'localhost'

これはユーザー名やパスワードが正しくないときに表示されます。

対処方法:

  • application.propertiesspring.datasource.usernamespring.datasource.passwordを再確認
  • データベースの設定で、そのユーザーが接続を許可されているか確認
③ ドライバが見つからない

エラーメッセージ例:


Cannot load driver class: com.mysql.cj.jdbc.Driver

これはMySQLのJDBCドライバがGradleに正しく設定されていない可能性があります。

対処方法:

  • build.gradlemysql-connector-jが含まれているか確認
  • Gradleのリフレッシュを実行して依存関係を再取得

これらのエラーは初心者が最初に遭遇しやすいものですが、落ち着いて原因を絞り込むことで確実に解決できます。

8. JDBCを使うときの注意点と今後学ぶべき方向性

8. JDBCを使うときの注意点と今後学ぶべき方向性
8. JDBCを使うときの注意点と今後学ぶべき方向性

JDBCはとても基本的な技術で、データベース接続の仕組みを理解するには最適です。しかし、実際の業務では、JDBCだけではコード量が多くなりがちで、保守性が下がることがあります。

Spring Bootでは、JDBCの次のステップとして「Spring Data JPA」という仕組みを使うのが一般的です。Spring Data JPAを使えば、SQLを書くことなく、インタフェースだけでデータベース操作ができるようになります。

例として、JDBCでは次のようにSQLを書きますが、


String sql = "SELECT name FROM users";
jdbcTemplate.query(sql, (rs, rowNum) -> rs.getString("name"));

Spring Data JPAを使うと、次のように非常にシンプルな書き方で実現できます。


public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByName(String name);
}

このように、Spring Bootにはより効率的に開発できる仕組みがたくさん用意されています。最初はJDBCでしっかりとデータベース接続の仕組みを理解し、次のステップとしてJPAやMyBatisなどを学んでいくと、より柔軟で大規模なアプリケーション開発にも対応できるようになります。

JDBCを使う際には、以下の点に注意してください。

  • SQL文を直接書くため、構文ミスやバグが起きやすい
  • データベースに依存する記述が多くなりがち
  • トランザクション管理を適切にしないとデータ整合性が崩れる

そのため、Spring Bootを使った開発に慣れてきたら、より高機能なフレームワークの活用も視野に入れて学習を進めていきましょう。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
ServletとJDBCでINSERT文を実行する方法を初心者向けに徹底解説
SQLのサブクエリを完全ガイド!入れ子クエリの使い方を初心者向け解説
Javaサーブレットとは何かを完全解説!HTMLとの違いと役割分担を初心者向けにやさしく説明
Javaの変数名のつけ方を完全ガイド!初心者でもわかるルールとコツ
人気記事
No.1
Java&Spring記事人気No1
Service層とは?Spring Boot初心者向けに役割をやさしく解説
No.2
Java&Spring記事人気No2
SQLのビュー(VIEW)を完全ガイド!初心者でもわかる仮想テーブルの使い方
No.3
Java&Spring記事人気No3
SQLのトリガー(TRIGGER)を完全ガイド!初心者でもわかる自動処理の仕組み
No.4
Java&Spring記事人気No4
HTMLのセレクトボックス(プルダウン)の使い方を完全ガイド!selectとoptionの基本を覚えよう