- PR -

PrepareStatementのexecuteUpdateについて

1
投稿者投稿内容
mayri
会議室デビュー日: 2007/05/04
投稿数: 2
投稿日時: 2007-05-04 23:35
初めまして。
超初心者Java独学中のmayriと申します。

PreparedStatementのexuecuteUpdateについて検索したところ
・PreparedStatement オブジェクトの SQL INSERT 文、UPDATE 文、または DELETE 文を実行します。さらに、DDL 文のような何も返さない SQL 文を実行することもできる

・戻り値:
INSERT 文、UPDATE 文、DELETE 文の場合は行数。何も返さない SQL 文の場合は 0

とありました。
DELETE文を実行したいと思うのですが、ここでいう戻り値の「行数」というのはDELETEしたデータの行番号が返ってくるということなのでしょうか??
それとも1行DELETEしたら1が返ってくるということなのでしょうか?

自分はDELETEを実行した時DELETE対象が複数あった場合、何件削除を実行したかが知りたいのですが、この「行数」という表現で迷ってしまいました。

もし、行番号が返ってくるのでしたら、削除した件数を知る方法というのはどのようなものがあるのでしょうか?

よろしくお願いします。
ことぶき
会議室デビュー日: 2007/02/27
投稿数: 9
投稿日時: 2007-05-05 00:31
自分も覚えていなかったので検索してみました。

こちらが参考になりますか?
http://akimoto-jp.com/java/Database/Jdbc-api/PreparedStatement.html

今、実行環境が無いので不安な回答ですが・・・。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-05-05 00:34
試してみればすぐわかると思うのですが。。

引用:

mayriさんの書き込み (2007-05-04 23:35) より:
DELETE文を実行したいと思うのですが、ここでいう戻り値の「行数」というのはDELETEしたデータの行番号が返ってくるということなのでしょうか??


行番号って何ですか?

PostgreSQLのoidならintですが、省略可能ですし、
OracleならROWNUMはFetch時に振られる行番号だし、
ROWIDはそもそも(少なくとも単純な)整数ではありません。
mayri
会議室デビュー日: 2007/05/04
投稿数: 2
投稿日時: 2007-05-05 01:47
ことぶきさん、あしゅさん回答ありがとうございます。

実行環境が今ないのですが気になって質問させていただきました。
理解不足で申し訳ないです。

あしゅさんのおっしゃっていたoidやROWIDが自分が行番号と表現していたもののようです。
各行に整数の番号が順番に付与されているものだと思い込んでました。

ことぶきさんのURL参考にさせていただきました。
executeUpdate の戻り値は、「影響を受ける行の数を示す整数値 (更新カウント)」であると解釈しました。

初心者のたわいも無い質問に回答いただきありがとうございました!精進します。
1

スキルアップ/キャリアアップ(JOB@IT)