テーブル エイリアスを持つ JDBC ResultSet 列
「SELECT * from table1 a, table2 b where (WHATEVER)」のようなクエリを実行する場合、 「resultSet.getString("a.columnName")」を使用してデータにアクセスするか、 "resultSet.getString("b.columnName")" は失敗します。
JDBC API はこのシナリオに明示的に対応しておらず、ベンダー依存のままです。ただし、この問題は次の方法で解決できます。
オプション 1: 列の名前変更
次のようなエイリアスを使用してクエリ内で列の名前を変更します。
SELECT a.columnName as columnNameA, b.columnName as columnNameB, ... from table1 a, table2 b where (WHATEVER)
次に、Java でこれらのエイリアスを参照します。コード:
resultSet.getString("columnNameA"); resultSet.getString("columnNameB");
オプション 2: 列の位置
結果セット内の位置によって列を参照します:
resultSet.getString(1); resultSet.getString(2);
JDBC に注意してください最初の列は 1 から始まる 1 ベースのインデックスを使用します。
安全性と保守性を考慮すると、オプション 1 (列の名前変更) をお勧めします。クエリの列の順序が変更されると、間違った列にアクセスするとコードが警告なしに中断されます。対照的に、列名を変更すると、「そのような列はありません」例外が発生し、問題が警告されます。
以上がテーブルエイリアスを使用して JDBC ResultSet 列にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。