1

MySQL 5.5、STS 2.9.2、mysql-connector-java-5.1.21-bin.jar を使用

ResultSet から配列を取得したい。

だから私はこのようにコーディングしました:

try {
  Connection conn = DriverManager.getConnection(url, id, pass);
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery(query); 

  if (rs.next()) {
    Array code = rs.getArray("code");
    Array count = rs.getArray("count");         

    Object objCode = code.getArray();
    Object objCount = count.getArray();

    int[] itemCode = (int[]) objCode;
    int[] itemCount = (int[]) objCount;

    // do something     
  } 

  conn.close();
  stmt.close();
  rs.close();           
} catch(SQLException e) { 
  printError(e);
}

それから、私はで取得しSQLFeatureNotSupportedExceptionましたgetArray()

行を削除しても、その例外は発生しません。

私はそれについてググったところ、JDBC ドライバーがこのメソッドをサポートしていないことが原因であることがわかりました。何を言っているのか理解できません。どうすればこの問題を解決できますか?

4

2 に答える 2

6

.getArray メソッドは、ARRAY SQL データ型をフェッチします。そのように: .getDecimal は DECIMAL SQL データ型などをフェッチします... MySQL (たとえば) は ARRAY データ型をサポートしていません。そのため、Java レポート: 機能はサポートされていません。

すべてのフィールドをインデックス付き配列としてフェッチする場合は、インデックス 1 の VARCHAR カラム値に .getString(1) を使用します。

クエリの例: SELECT id,title FROM news WHERE id = 1;

したがって、.getInt(1) で id を取得し、.getString(2) でタイトルを取得できます。

それについて私が言えることはそれだけです))

于 2012-10-05T13:51:24.073 に答える
2

getArray("columnName")またはgetArray("columnIndex")メソッドが MySql データベース サーバーでサポートされていません。

于 2014-07-23T09:18:27.363 に答える