2

JTable を使用してクエリの結果を表示しています。テーブルはXYZすべての列として表示されるわけではありませんがXYZ、データベースに存在しないフィールド (操作されたフィールド) のヘッダーとして表示されます。

データベースの内部はよくわかりません。基本的すぎて申し訳ありません。

 rs1 = st1.executeQuery("SELECT product.`id` as `Product ID`,product.`serialnumber` as `Serial Number`, product.`dop` as `Date Of Purchase` FROM product where product.`dop` between '"+from+"' and '"+to+"'");

         reportTable.setModel(buildTableModel(rs1));

クエリ ブラウザでの同じクエリ 出力:

Product ID    Serial Number     Date Of Purchase     
1              123244mf43m      08/08/2013

JDBCを使用した私の出力は次のとおりです。

id   serialnumber       dop      //table header
1    123244mf43m      08/08/2013
4

1 に答える 1

4

ここで説明されている構成設定があります。

http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

useOldAliasMetadataBehavior

これを true (5.0.x のデフォルト) に設定すると、元の列/テーブル名ではなく、ResultSetMetaData.getColumnName() または ResultSetMetaData.getTableName() のエイリアス (存在する場合) のみが返されます。

これがあなたに当てはまるかどうかはわかりませんが、原因である可能性があります。

于 2013-08-08T10:20:09.703 に答える