JavaのJDBCとは?Javaからデータベースを操作する基本の考え方

Schoo Java入門 中級 第1回 データベース処理

本記事は、Schooの「Java入門 中級【2026年版】」第1回「エンタープライズアプリケーションとデータベース処理」を学ぶ前後に、Javaからデータベースを扱う基本イメージを整理したい方向けの記事です。

中級では、Javaの中だけで値を扱う段階から、データベースに保存されたデータを読み書きする段階に進みます。ここで出てくる代表的な仕組みが JDBC です。

この記事では、細かい準備手順ではなく、JavaプログラムからデータベースにSQLを送り、結果を受け取る流れを具体例で確認します。

Schoo コースページ:Java入門 中級【2026年版】

JDBCは何のために使うのか

JDBC は、Javaからデータベースを操作するための仕組みです。Javaのコードだけでは、データベースの表に直接命令できません。そこで、JDBCを使ってデータベースに接続し、SQLを送ります。

図解:Javaプログラムからデータベースまでの裏側
1. Javaプログラム
Javaのコードでは、取り出したいデータをSQLで書き、JDBC APIのメソッドを呼び出します。
String sql = “SELECT …”;
stmt.executeQuery(sql);
↓ SQLを渡す
Connection
Statement
ResultSet
2. JDBC API
Java側の共通窓口です。接続、SQL実行、結果の受け取りを、Javaから決まった形で扱えるようにします。
Connection Statement ResultSet
↓ 接続先DB向けの処理へ渡す
SQL
DB通信
3. JDBCドライバ
JDBC APIへの共通の呼び出しを、MySQLなど接続先のデータベースが理解できる通信に変換します。
↓ データベースへ送る
4. データベース
SQLを実行し、表から条件に合う行を探します。検索結果は、JDBCドライバ、JDBC APIを通ってJavaプログラムへ戻ります。
↑ 検索結果は逆方向に戻る
Javaプログラムが直接やらないこと: データベースごとの細かい通信方法を書くこと。
JDBCが助けてくれること: Java側は共通の呼び出し方を使い、JDBCドライバが接続先のデータベースに合わせて橋渡しすること。
JavaプログラムはJDBC APIを呼び出し、JDBCドライバが接続先データベース向けの通信に変換します。

まずは、Java側でSQLを書き、そのSQLでデータベースの表から何を取り出すのかを見るところから始めます。

SQLはデータベースへのお願い

SQLは、データベースに対して「このデータを取り出して」「このデータを追加して」とお願いするための言葉です。

SELECT id, title, artist FROM songs

このSQLは、songs という表から、idtitleartist の列を取り出す命令です。

図解:データベースの表から行を取り出す
id title artist
1 夜明けのビート スカイライン
2 夕暮れコード Blue Notes
SELECT id, title, artist FROM songs は、songs テーブルから idtitleartist の列を取り出す命令です。
データベース処理では、表のどの列を取り出すのかをSQLで指定します。

SELECT処理の全体の流れ

JDBCで検索処理を書くときは、次の流れで考えます。

図解:SELECTを実行して結果を読む流れ
1. Connection
データベースにつながる
2. Statement
SQLを送る準備をする
3. executeQuery(sql)
SELECT文を実行する
4. ResultSet
検索結果を1行ずつ読む
5. close
使い終わった接続や結果を閉じる
JDBCのSELECT処理は、「つなぐ」「SQLを送る」「結果を読む」「閉じる」の順番で考えると整理しやすくなります。

最初からすべてのクラス名を覚えようとすると難しく見えます。まずは、処理の順番を「つなぐ」「送る」「読む」「閉じる」に分けて見るのがポイントです。

JDBCで出てくる主な部品

JDBCのサンプルでは、ConnectionStatementResultSet という名前がよく出てきます。

図解:JDBCで出てくる主な部品
Connection
データベースとの接続を表す
Statement
SQLを実行するための部品
ResultSet
SELECTの検索結果を持つ
最初はクラス名を暗記するより、それぞれがどの場面で出てくる部品なのかを押さえることが大切です。
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);

Connection はデータベースとの接続、Statement はSQLを実行する部品、ResultSet はSELECTの結果を受け取る部品です。

ResultSetは検索結果を1行ずつ読む

SELECTの結果は、まとめて文字列として返ってくるわけではありません。ResultSet に入った検索結果を、whilers.next() で1行ずつ読みます。

while (rs.next()) {
    int id = rs.getInt("id");
    String title = rs.getString("title");
    String artist = rs.getString("artist");

    System.out.println(title + " / " + artist);
}

rs.next() は、次の行へ進めるかを確認する処理です。次の行があれば true になり、その行の値を getIntgetString で取り出せます。

データベース処理では最後に閉じることも大切

データベースに接続したら、使い終わったあとに閉じる必要があります。接続や検索結果を開いたままにすると、不要な資源を使い続けることになります。

そのため、JDBCのコードでは close()try-with-resources が出てきます。これは、データベース処理が終わったあとに後片付けをするための考え方です。

確認問題

  1. JDBCは、Javaプログラムと何をつなぐための仕組みですか。
  2. SELECT id, title, artist FROM songs は、どのような命令ですか。
  3. ResultSet は、何を扱うための部品ですか。

演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。

あわせて読みたい関連記事

まとめ

JDBCは、Javaからデータベースを操作するための仕組みです。JavaプログラムはJDBCを通してSQLを送り、データベースから返ってきた結果を ResultSet で1行ずつ読み取ります。まずは、「つなぐ」「SQLを送る」「結果を読む」「閉じる」という全体の流れを押さえましょう。

シェアする