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