Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

executeQueryメソッド

データベースを検索する – executeQueryメソッド
ResultSet executeQuery() throws SQLException
T getXxxxx(String column)
T:データ型(String、int、double、Blobなど)
column:フィールド名

SELECT命令を実行するには、PreparedStatement#executeQueryメソッドを利用します。INSERT/UPDATE/DELETE命令で利用したexecuteUpdateメソッドは、SELECT命令では利用できないので注意してください。

SqlQuery.java

package com.example.mynavi.sql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class SqlQuery {
  public static void main(String[] args) {
    try (Connection db = DriverManager.getConnection(
      "jdbc:mysql:⁄⁄localhost/sample?useUnicode=true&characterEncoding=UTF-8&useSSL=true", "root", "root")) {
      PreparedStatement ps = db.prepareStatement("SELECT * FROM member where sex = ?");
      ps.setString(1, "男");
      ResultSet rs = ps.executeQuery();
      while (rs.next()) {
        System.out.println(rs.getString("nam"));
        System.out.println(rs.getString("sex"));
        System.out.println(rs.getInt("age"));
        System.out.println("---------------------------------");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
}

↓

山田太郎
男
30
---------------------------------
井上次郎
男
32
---------------------------------
佐藤健太
男
35
---------------------------------

executeQueryメソッドの戻り値は、データベースから取得したデータ群――結果セット(ResultSetオブジェクト)です。ResultSetオブジェクトは、先頭行から順にデータを読みだしていくのが基本です。
ポインター(現在行を示す目印)は、初期状態で先頭行の前にありますので、これをnextメソッドで次の行に移動していきます。nextメソッドは次の行がない場合にfalseを返しますので、これを利用して、nextメソッドがfalseを返すまでwhileループを繰り返します。これによって、すべての行を読みだすことができます。
現在の行にアクセスするのは、ResultSet#getXxxxxメソッドの役割です。Xxxxxは、取得する列の型に応じて、String、Int、Double、Boolean、Byteなどとなります。

関連ページ
executeUpdate

データベース
データベースの準備
データベースに接続/切断する
prepareStatement/executeUpdateメソッド
executeQueryメソッド
setAutoCommit/commit/rollbackメソッド

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職