0

DB2 データベースと対話する WAS 8.0.0.5 でアプリケーションを開発しています。

java.sql.ResultSetMetaData call getColumnName() クラスを使用して列名を取得しています。私の開発では、すべてがうまくいきました。

ResultSetMetaData rsmd = rs.getMetaData();
String columnName = rsmd.getColumnName(i + 1);

列名を取得する代わりに WAS 8.0.0.6 にインストールしようとすると、列インデックスが取得されます!!!

接続ストリングのドライバー・セットはcom.ibm.db2.jcc.DB2Driverです。

補足として、WAS 8.0.0.5 は DB2 ドライバー 3.62 を使用し (動作)、8.0.0.6 は 4.12 を使用する (動作しない) ことを確認しました。

なにが問題ですか?

4

2 に答える 2

1

との動作はgetColumnName()getColumnLabel()IBM Data Server Driver for JDBC バージョン 4 で変更されました。現在は JDBC 仕様に準拠していると思います。useJDBC4ColumnNameAndLabelSemanticsここで説明されているように、接続プロパティを使用してこの動作を変更できます。 /tpc/imjcc_c0052593.html .

于 2013-11-04T23:47:43.587 に答える
1

返信ありがとうございます。

残念ながら、それは解決策ではありませんでした。この動作は、クエリのラベルまたは列名自体ではなく、列インデックスが返されるというものでした。

問題は、WAS JDBC リソースで構成された db2jcc.jar バージョンが古すぎる (バージョン 3.59) ことでした。それを 4.12 に置き換えたところ、動作するようになりました。

于 2013-11-05T09:27:28.373 に答える