- - PR -
MySQLのキャストエラーについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-03-13 00:02
ローカルマシン(Windows)で、これまで別のMySQLサーバ(Linux)を
参照していましたが、訳あってローカル(Java環境と同マシン)に 入れたMySQLへ接続を変更しました。 変更後、Javaからの接続自体は問題なくできたのですが、 ある画面にて、テーブルから区分データ(IDと名前)を取得して、 LabelValueBeanに設定する際にどうしてもエラー(java.lang.ClassCastException) になってしまいます。(プログラムは特に変更していません) String型にキャストできないといったエラーのようだったので、 テーブルの型や文字コードなども色々変えてみましたが 全く変化なしでした。(MySQLの文字コードはutf8にしています) エラーは下記のような表示です。 ------------------------------------------------------------ java.lang.ClassCastException: [B cannot be cast to java.lang.String at ・・・ ------------------------------------------------------------ エラーになっている箇所は、 下記のような処理です。(4行目でエラー発生) ------------------------------------------------------------ Map[] mapRet = productsAB.getProductsSubclassList(); LabelValueBean[] result = new LabelValueBean[mapRet.length]; for(int i=0 ;i < mapRet.length; i++){ result[i] = new LabelValueBean((String)(mapRet[i].get("SUBCLASS_NAME")), (String)(mapRet[i].get("SUBCLASS_ID"))); } ------------------------------------------------------------ また、上記1行目のgetProductsSubclassListでは、 下記のようなSQLを呼んでいます。 ------------------------------------------------------------ Map[] mapRet = null; ArrayList aryCondition = null; // 条件確保用の配列を作成 aryCondition = new ArrayList(); StringBuffer sql = new StringBuffer() .append( "select " ) .append( "concat(products_class_id, '/', products_subclass_id) subclass_id, ") .append( "products_subclass_name subclass_name ") .append( "from " ) .append( "products_subclass ") .append( " order by " ) .append( " products_class_id, " ) .append( " products_subclass_id " ); // 結果返却 return this.getResultMap( sql.toString(), aryCondition.toArray( new Object[0] ) ); ※getResultMapでは指定したカラム名(小文字->大文字に変換されます) をキーとして、引数のステートメントから取得した情報をMap配列として 返却します ------------------------------------------------------------ あまりMySQLに明るくないのですが、環境の違いで 何か対応すべきことはあるのでしょうか。 なにかお分かりの方がいらっしゃいましたら どうぞアドバイスをよろしくお願いいたします。 |
|
投稿日時: 2009-03-16 13:34
自己解決しました。
どうやらローカルに入れたMySQLのバージョンが5だと、 文字コードの定義に変更があったりで問題があるようです。 4で入れなおしたところ、同じエラーは出ませんでした。 お騒がせしました。 |
1