JDBC を使ったデータベースの処理は、以下のような流れで進んでいきます。
Connection
オブジェクトを取得)Statement
オブジェクトを作成)ResultSet
オブジェクトを取得)Connection
, Statement
, ResultSet
は、処理が終わったら close()
する必要があります。
各オブジェクトのオープンとクローズの関係を、分かりやすいようにインデントで対にして示すと以下のようになります。
あらかじめ Class.forName(...) で JDBC ドライバを登録しておく
Connection connection = DirverManager.getConnection(...)
Statement statement = connection.createStatement()
ResultSet resultSet = statement.executeQuery(...)
resultSet を使った処理
resultSet.close()
statement.close()
connection.close()
上記の例では、SQL 文を実行するために Statement.executeQuery()
を呼んでいますが、実行する SQL の種類によってメソッドが異なります。
int Statement#executeUpdate(...)
ResultSet Statement#executeStatement(...)
Statement
がクローズされると、その Statement
からオープンされた ResultSet
も自動的にクローズされます(API 仕様)。
1 つの Statement
から複数の ResultSet
を同時にオープンすることはできません。
すでに ResultSet
をオープンしている状態で、Statement
の execution
メソッドを呼び出すと、自動的にその ResultSet
はクローズされ、新しい ResultSet
が生成されます。