ホームページ >データベース >mysql チュートリアル >テーブルエイリアスと重複する列名を持つ JDBC ResultSet 列にアクセスするにはどうすればよいですか?
JDBC ResultSet: テーブル エイリアスを使用した列へのアクセス
列名が重複する可能性がある複数のテーブルを含む SQL クエリを操作する場合、列を使用してデータにアクセスするテーブルの別名で修飾された名前は問題を引き起こす可能性があります。通常、JDBC API はデフォルトで汎用の列名を割り当てるため、曖昧さが生じます。
この問題に対処するには、次のオプションを検討してください。
オプション 1: 列のエイリアスを使用する
元のクエリ内:
SELECT * from table1 a, table2 b where (WHATEVER)
一意の列を指定競合する可能性のある列のエイリアス:
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); // First column resultSet.getString(2); // Second column
JDBC インデックスは 0 ではなく 1 から始まることに注意してください。
オプション 2 の方がより簡潔ですが、一般的には明瞭さと堅牢性の点でオプション 1 の方が好まれます。クエリ内の列の名前を変更すると実行時例外が発生し、コードの保守性が向上します。
以上がテーブルエイリアスと重複する列名を持つ JDBC ResultSet 列にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。