Statement

SQL文を「保持する」ものであり、かつ「実行する」もの。 JDBCはStatementは3種類のクラスつまり Statement, PreparedStatement, CallableStatement を 持っているが、RDBCでは1種類のみで、実行時に 動作を変化させている。

クラスメソッド:

メソッド:

initialize(con, sql=nil)

Connection#createStatementから呼ばれる(のでRDBCユーザーが呼ぶ必要はない)。 conは由来するConnectionオブジェクト。 sqlがnilならばselfは「後でSQL文を与えられる(preparedでない)」存在となる。 nilでなければ「今与えられたSQL文を後で実行する(preparedである)」存在となる。

execute(sql=nil)

SQL文を「実行」する。sqlがnilなら「最初(initialize)に与えられた SQL文」を実行する。nilでなければ「今与えられた sql」を実行する。 initializeとexecuteの「どちらか一方で1回だけ」SQL文は 与えられるべきである。両方ナシまたは両方アリであった場合、 例外を出す。
SQL文を実行した結果として、今回の検索の結果であるResultSetオブジェクトが 生成されているか、今回の更新の結果であるupdatecountが0以上になっているか、 どちらかが生じているはずである。ResultSetが生成されていればtrueを、 updatecountが0以上ならばfalseを、返す。

executeQuery(sql=nil)

executeに似ている。SQL文を実行した後で ResultSetが存在することを仮定している点が違う。 つまり、実行されたSQL文が「検索」を行うものであった と仮定している。そうでなかった場合は例外になる。 成功すればそのResultSetを返す。

executeUpdate(sql=nil)

executeに似ている。SQL文を実行した後で ResultSetが存在しないことを仮定している点が違う。 つまりexecuteQueryの対である。 updatecountが0以上になっていなければ例外になる。 成功すればupdatecountを返す。

close

このStatementと、それに由来するRDBCオブジェクトを、閉じる。

setParam(index, data)

selfがpreparedな存在であるとき、「パラメータつきSQL文」に パラメータを後から与え、実行することが出来る。 そのパラメータを与えるメソッドがこれである。 文字列indexはパラメータの「名前」、dataはパラメータのデータである。

getParam(index)

「パラメータつきSQL文」によって値を取り出すためのメソッド。

resultset

executeまたはexecuteQueryを行った結果のResultSetを (次回SQL文を実行するまでは)記憶しているので、それを返す。 前回SQL文がexecuetUpdate系であった場合は、nilが返る。

updatecount

executeまたはexecuteUpdateを行った結果のupdatecountを (次回SQL文を実行するまでは)記憶しているので、それを返す。 前回SQL文がexecuetQuery系であった場合は、-1が返る。