上記のオブジェクトをこのテーブル構造を持つMySQLテーブルにアップロードするためにjava.io.File
、の選択から取得するというこの問題がありますJFileChooser
java.io.File
COL_NAME COL_TYPE ATTRIBUTES EXTRA
(PK) idSample int(10) UNSIGNED ZEROFILL AUTO_INCREMENT
FileName varchar(250)
FileBin blob BINARY
そして、この Java コードから、newConnection
メソッドはクラスの静的メソッドであり、前述の MySQL データベースにデフォルトで DriverManager の新しいインスタンスを返します。もう1つ、java.sql
パッケージではなくパッケージを使用していcom.mysql.jdbc
ます。
public static boolean insert(final String filename, File file) throws SQLException, IOException {
boolean flag = false;
try {
Connection connection = newConnection();
PreparedStatement statement = connection.prepareStatement(SQL_INSERT);
statement.setString(1, filename);
statement.setBlob(2, new FileInputStream(file), file.length());
flag = statement.executeUpdate() > 0;
statement.close();
connection.close();
} catch (SQLException ex) {
throw ex;
} catch (IOException ex) {
throw ex;
}
return flag;
}
statement.setBlob
プログラムを実行しようとすると、次のスタック トレースを含む行につながるエラーが返されます。
Exception in thread "main" java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setBlob(ILjava/io/InputStream;J)V
この問題を解決するにはどうすればよいですか?