カテゴリ: JavaのJDBC 更新日: 2026/04/11

JavaのJDBCでStatementを使ってSELECT文を実行する方法を徹底解説!初心者向けデータベース接続入門

2099
JDBC の Statement を使って SQL を実行する(SELECT 文)

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

生徒

「Javaでデータベースからデータを取得するにはどうすればいいですか?JDBCとかStatementってよく聞くのですが難しそうです。」

先生

「JavaではJDBCを使うことで、MySQLやPostgreSQLなどのデータベースに接続できます。そしてStatementを使えば、SELECT文を実行してデータを取得できます。」

生徒

「SELECT文って、データを検索するSQLですよね?Javaのコードでどう書くのか知りたいです。」

先生

「では、JDBCの基本から、Statementを使ったSELECT文の実行方法まで順番に解説していきましょう。」

1. JDBCとは何か?Javaでデータベース接続する基本

1. JDBCとは何か?Javaでデータベース接続する基本
1. JDBCとは何か?Javaでデータベース接続する基本

JDBCは、Java Database Connectivityの略で、Javaからデータベースに接続するための標準APIです。JavaアプリケーションからMySQLやPostgreSQL、OracleなどのデータベースへSQLを発行できます。

Javaでデータベース接続を行う場合、主に次の流れになります。

  • ドライバの読み込み
  • Connectionの取得
  • Statementの作成
  • SQLの実行
  • ResultSetで結果取得
  • リソースのクローズ

この一連の流れを理解することが、JDBC入門の第一歩です。特に初心者がつまずきやすいのは、StatementとPreparedStatementの違いですが、今回は基本となるStatementを使ったSELECT文の実行方法に集中します。

2. Statementとは?SELECT文を実行するための基本クラス

2. Statementとは?SELECT文を実行するための基本クラス
2. Statementとは?SELECT文を実行するための基本クラス

Statementは、SQL文をデータベースへ送信するためのインターフェースです。Javaのjava.sqlパッケージに含まれています。

Statementを使うと、次のようなSQLを実行できます。

  • SELECT文でデータ取得
  • INSERT文でデータ追加
  • UPDATE文でデータ更新
  • DELETE文でデータ削除

SELECT文を実行する場合は、executeQueryメソッドを使用します。戻り値はResultSetで、ここから検索結果を1件ずつ取り出します。

3. JDBCでStatementを使ってSELECT文を実行する基本コード

3. JDBCでStatementを使ってSELECT文を実行する基本コード
3. JDBCでStatementを使ってSELECT文を実行する基本コード

ここでは、MySQLデータベースに接続し、usersテーブルから全件取得するサンプルコードを紹介します。Java初心者でも理解できるように、シンプルな構成にしています。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcSelectSample {
    public static void main(String[] args) {
        try {
            Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/sampledb",
                "root",
                "password"
            );

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT id, name FROM users");

            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                System.out.println(id + " : " + name);
            }

            rs.close();
            stmt.close();
            conn.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

このコードでは、DriverManagerを使ってデータベース接続を行い、createStatementでStatementを作成し、executeQueryでSELECT文を実行しています。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. ResultSetでSELECT結果を取得する方法

4. ResultSetでSELECT結果を取得する方法
4. ResultSetでSELECT結果を取得する方法

SELECT文を実行すると、結果はResultSetに格納されます。ResultSetは、検索結果を1行ずつ読み込むためのオブジェクトです。

主なポイントは次の通りです。

  • nextメソッドで次の行へ移動
  • getIntやgetStringでカラム値取得
  • カラム名またはインデックス指定が可能

while (rs.next()) {
    int id = rs.getInt(1);
    String name = rs.getString(2);
    System.out.println("ID=" + id + ", NAME=" + name);
}

nextは、次のレコードが存在する場合にtrueを返します。これを利用してループ処理を行います。Javaでデータベース検索結果を扱う基本パターンなので、必ず覚えておきましょう。

5. WHERE句付きSELECT文をStatementで実行する例

5. WHERE句付きSELECT文をStatementで実行する例
5. WHERE句付きSELECT文をStatementで実行する例

次は、WHERE句を使ったSELECT文の例です。特定のidを検索するパターンです。


Statement stmt = conn.createStatement();
String sql = "SELECT id, name FROM users WHERE id = 1";
ResultSet rs = stmt.executeQuery(sql);

if (rs.next()) {
    System.out.println(rs.getString("name"));
}

このように、文字列としてSQLを組み立ててexecuteQueryへ渡します。ただし、ユーザー入力をそのまま連結するとSQLインジェクションの危険があります。実務ではPreparedStatementの利用が推奨されますが、JDBCの基礎理解としてStatementの動きを押さえておくことが重要です。

6. リソースを確実にクローズする重要性

6. リソースを確実にクローズする重要性
6. リソースを確実にクローズする重要性

JDBCでは、Connection、Statement、ResultSetを必ずcloseする必要があります。クローズしないと、メモリリークや接続数オーバーの原因になります。


try {
    // データベース処理
} finally {
    if (rs != null) rs.close();
    if (stmt != null) stmt.close();
    if (conn != null) conn.close();
}

最近のJavaではtry-with-resources構文もよく使われます。JDBC初心者の方は、まずはcloseの重要性を理解してから応用に進むと理解が深まります。

7. JDBCとStatementを学ぶメリットと次のステップ

7. JDBCとStatementを学ぶメリットと次のステップ
7. JDBCとStatementを学ぶメリットと次のステップ

Javaでデータベース接続を行うスキルは、Webアプリケーション開発や業務システム開発で必須です。JDBCとStatementを理解することで、SQLとJavaの連携が明確になります。

本記事で解説したポイントは次の通りです。

  • JDBCの基本的な仕組み
  • Statementの役割
  • SELECT文の実行方法
  • ResultSetでのデータ取得
  • リソース管理の重要性

今後はPreparedStatementやトランザクション管理、接続プールなども学ぶと、より実践的なJavaデータベースプログラミングが身につきます。Java初心者の方は、まずは今回のStatementを使ったSELECT文の実行を何度も練習して、JDBCの基本を確実に理解していきましょう。

まとめ

まとめ
まとめ

本記事では、JavaでJDBCを利用し、Statementを使ってSELECT文を実行する方法について、基礎から丁寧に解説しました。Javaデータベース接続の流れとして、ドライバの読み込み、Connectionの取得、Statementの生成、SELECT文の実行、ResultSetによる結果取得、そしてリソースのクローズまで、一連の処理を体系的に理解することが重要です。

JDBCはJavaアプリケーションとデータベースをつなぐ標準的なAPIであり、MySQLやPostgreSQLなどのデータベース操作を行う上で欠かせない技術です。特にStatementは、SQL文を直接データベースへ送信するための基本インターフェースであり、SELECT文を実行するexecuteQueryメソッドの使い方は、Java初心者が最初に身につけるべき重要なポイントです。

SELECT文の実行後はResultSetを用いて検索結果を一件ずつ取り出します。nextメソッドで行を移動し、getIntやgetStringでカラム値を取得する処理は、Javaデータベースプログラミングの基本パターンです。この繰り返し構造を正しく理解することで、検索結果の一覧表示や条件検索など、実務でよく使われる処理に応用できます。

また、Connection、Statement、ResultSetを確実にcloseすることは、安定したシステム運用のために欠かせません。リソース管理を怠ると、接続数超過やメモリ不足といった深刻な問題につながります。JavaでJDBCを扱う際は、必ずリソースクローズを徹底する習慣を身につけましょう。

SELECT文実行の復習サンプル


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcSummarySample {
    public static void main(String[] args) {
        try {
            Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/sampledb",
                "root",
                "password"
            );

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT id, name FROM users");

            while (rs.next()) {
                System.out.println(
                    rs.getInt("id") + " : " + rs.getString("name")
                );
            }

            rs.close();
            stmt.close();
            conn.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上記のコードは、JavaでJDBCを使用してStatementからSELECT文を実行し、ResultSetでデータを取得する一連の流れをまとめたものです。Javaデータベース接続入門として、まずはこの形を確実に再現できるように練習することが理解への近道です。

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

生徒

JavaでJDBCを使うと、データベース接続からSELECT文の実行まで一通りできることが分かりました。StatementはSQLを送るための基本クラスなのですね。

先生

その通りです。Javaデータベース接続では、Connectionで接続し、StatementでSELECT文を実行し、ResultSetで結果を取得する流れが基本です。この流れを理解することが重要です。

生徒

ResultSetのnextで一行ずつ取得する処理が繰り返し使われるのも理解できました。Javaでデータベース検索結果を扱う基本形なのですね。

先生

はい。JDBCとStatementを正しく使えるようになれば、Webアプリケーション開発や業務システム開発でも応用できます。まずはSELECT文の実行を確実に身につけましょう。

JavaのJDBCの一覧へ
新着記事
Java
JDBC の Statement を使って SQL を実行する(SELECT 文)
JavaのJDBCでStatementを使ってSELECT文を実行する方法を徹底解説!初心者向けデータベース接続入門
Java
Java の static フィールドと static メソッド(クラス全体で共有する)
Java の static フィールドと static メソッド(クラス全体で共有する)
Java
Java の this キーワードとは?自分自身のオブジェクトを指す
Java の this キーワードとは?自分自身のオブジェクトを指す
Java
Java のメソッドとクラスの関係(クラス内の処理を定義する)
Java のメソッドとクラスの関係(クラス内の処理を定義する)
人気記事
AWS
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
AWS
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
AWS
インスタンスタイプの料金比較と最適な選び方(最新2026年版)
AWSインスタンスタイプの料金比較と最適な選び方!初心者でもわかる2025年最新ガイド
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク