• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLへバイナリデータを挿入する際にエラー)

MySQLへバイナリデータを挿入する際にエラー

このQ&Aのポイント
  • サーブレットを使用してMySQLへバイナリデータを挿入する際に、「java.lang.AbstractMethodError: org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setBlob(ILjava/io/InputStream;J)V」というエラーが発生しています。
  • エラーメッセージがSQLのエラーではないことから、setBlobとsetBinaryStreamの両方を試しても同じエラーが発生し、原因がわかりません。
  • ファイルのアップロードはうまくいくが、MySQLへの挿入処理でエラーが発生しています。解決策がわかる方がいれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.1

原因は分からないけど、いくつか調べる(と何か分かるかもしれない)ポイントがありそうなので参考までに。 1.BLOB型のフィールド使わない場合は問題なく動くか 2.サーブレットやFileUploadを利用しない、通常のJavaコードでも同じ現象がでるか 3.JDBCドライバのバージョンを変えてみてどうなるか(最新版、よく使われているバージョンなど) 2.を検証するコードを用意するのはちょっと大変かも。 3.については、AbstractMethodErrorがでているので、もしかしたら、というくらいです。 あとは、エラーの出ているのがどの行か、が分かると特定しやすいかもしれないです。

xanavi_nismo
質問者

お礼

回答ありがとうございます。いろいろと試してみたのですが、 ps.setBlob(1, fi.getInputStream(), fi.getSize()); //ps.setBinaryStream(1, fi.getInputStream(), fi.getSize()); この部分でエラーが出ていたので 、 ps.setBytes(1, fi.get()); としたところうまく行きました。