sql >> データベース >  >> RDS >> Oracle

JDBC ResultSetは、テーブルエイリアスを持つ列を取得します

    JDBCは、クエリで指定された名前で列に名前を付けるだけです。テーブル名などはわかりません。

    2つのオプションがあります:

    オプション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: 位置の列を参照してください JDBC APIの呼び出し:

    resultSet.getString(1);
    resultSet.getString(2);
    

    JDBCAPIは1ベースを使用することに注意してください インデックス-つまり、1からカウントします (0からではありません Javaインデックスのように)、1を使用します 最初の列は2 2列目など


    名前付き列を参照する方が安全なので、オプション1をお勧めします。誰かがクエリ内の列の順序を変更し、コードを黙って壊してしまう可能性があります(間違った列にアクセスしているのにわかりません)ただし、列名が変更された場合は、実行時に少なくとも「そのような列はありません」という例外が発生します。



    1. MySQLの不正な日時値: '0000-00-00 00:00:00'

    2. PostgreSQLarray_aggの順序

    3. Flask-SQLAlchemy小文字インデックス-スキップ機能、SQLAlchemyリフレクションではサポートされていません

    4. JSON_LENGTH()–MySQLでJSONドキュメントの長さを返します