データベースへの問い合わせは、そのデータを通して検索することを意味します。 問い合わせを行うには、データベースに SQL 文を送信します。 これを行うには、まず、開いているデータベース接続が必要です。
Statement statement = connection.createStatement();
Statement
オブジェクトを作成すると、次のようにSQLクエリを実行することができます:
String sql = "select * from people";ResultSet result = statement.executeQuery(sql);
SQLクエリを実行すると、ResultSet
が返されます。 ResultSet
にはSQLクエリの結果が格納されています。 結果はデータの列を持つ行で返されます。
while(result.next()) { String name = result.getString("name"); long age = result.getLong ("age");}
ResultSet.next()
メソッドはResultSet
の次の行に移動します。 もしこれ以上行があれば、真を返す。
データを読み込む前に、少なくとも1回はnext()
を呼び出す必要があります。 最初のnext()
呼び出しの前に、ResultSet
は最初の行の前に配置される。
getXXX()
メソッドのいくつかを呼び出すことによって、現在の行の列データを取得できる。ここでXXXはプリミティブデータ型である。 例えば、
result.getString ("columnName"); result.getLong ("columnName"); result.getInt ("columnName"); result.getDouble ("columnName"); result.getBigDecimal("columnName"); etc.
これらのgetXXX()
メソッド呼び出しのパラメータとして、値を取得する列名を渡します。
また、次のように列のインデックスを渡すこともできます。
int columnIndex = result.findColumn("columnName");
もし大量の行を反復処理する場合は、名前よりもインデックスで列を参照する方が速いかもしれません。
ResultSet
を反復処理し終わったら、ResultSet
とそれを生成した Statement
オブジェクトを閉じる必要があります (つまり、それが終わっていればですが)。 4485>
result.close();statement.close();
もちろん、これらのメソッドを finally
ブロック内で呼び出し、ResultSet
の反復処理中に例外が発生しても呼び出されるようにする必要があります。 例を短くするために、catch
ブロックを削除していることに注意してください。