- - PR -
ResultSetで同一名のカラムの区別
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-05 13:44
SQLでJOINすると検索結果に同一名のカラムが発生する場合があります。
これを単純にResulSetからgetString("カラム名")をすると エラーになってしまうのですが、 これを回避する方法はありますでしょうか? 現在はそれぞれにAs句で別名をつけることによって対処してますが、 かなり面倒な作業なので、 いい方法があれば教えてください。 | ||||
|
投稿日時: 2005-08-05 14:25
この場合はDBMSになりますが、そいつはどうやって、
ふたつのカラムの内、ひとつを選ぶんですか? 未記入さんの要望は、判断方法を指定もせずに、 自分に都合のいい判断をせよ、といっているようなものです。 | ||||
|
投稿日時: 2005-08-05 16:28
「As句で別名をつけることによって対処」これが教科書どおりの正解だと思います。
As句をつけない方法として ResultSet#getString(int) を使う別解もありますが、 プログラム中のSQLを変更した際に修正ミスが起こるリスクが「As句で別名」の 場合より高くなりますね。 | ||||
|
投稿日時: 2005-08-05 18:11
一応ResultSetのJavadocを見てみると、
仕様に従っていないJDBCドライバも結構あるので、Javadoc通りには行かないと思いますが。 ちなみに、Javaの世界では「エラー」というとjava.lang.Errorがスローされた状態を言います。 例外が発生している事を伝えたいのであれば、スタックトレースをコピペするべきです。 Java僧さんも回答されていますが、どうしてもASが面倒なら引数に数値を使うしかないでしょう。 私的にはSQLを楽して書いてJavaで面倒な思いをするより、 SQLでAS句を使った方がよっぽど楽だと思いますが。 |
1