<分区>
我在从 JFileChooser
的选择中获取 java.io.File
以上传所述 java.io.File
时遇到了这个问题对象到具有此表结构的 MySQL 表
COL_NAME COL_TYPE ATTRIBUTES EXTRA
(PK) idSample int(10) UNSIGNED ZEROFILL AUTO_INCREMENT
FileName varchar(250)
FileBin blob BINARY
从这段 Java 代码中可以看出,newConnection
方法是该类的静态方法,它返回一个默认为 MySQL 数据库的 DriverManager 的新实例。另一件事,我使用的是 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
我该如何解决这个问题?