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?serverTimezone=JST&useUnicode=true&characterEncoding=UTF-8&useSSL=true", "root", "12345")) {
PreparedStatement ps = db.prepareStatement("SELECT * FROM members 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






