我目前正在进行自己的实验,学习一些JDBC知识和如何将对象持久化到数据库中。现在我正在尝试将文档上传到数据库中。
我遇到了以下错误:
Exception in thread "main" java.lang.AbstractMethodError: Method com/mysql/jdbc/PreparedStatement.setClob(ILjava/io/Reader;)V is abstract
at com.mysql.jdbc.PreparedStatement.setClob(PreparedStatement.java)
at dao.StudentDAO.uploadResume(StudentDAO.java:156)
at controller.Test.main(Test.java:30)
我不知道为什么会出现这种情况,有人能帮我看看错误吗? 以下是部分代码:
// this is in my studentDAO class:
private static final String SQL_UPDATE_RESUME =
"UPDATE students
SET resume = ?
WHERE socialSecNumber = ?";
public boolean uploadResume(Reader r) {
PreparedStatement pst;
//Reader file;
try{
pst = con.getConnection().prepareStatement(SQL_UPDATE_RESUME);
//file = r;
pst.setClob(1, r);
}
catch(SQLException e){
System.out.println("Error when uploading the resume: " + e);
}
finally{
con.closeConnection();
}
return true;
}
public class Test {
public static void main(String[] args) {
File file = new File("C:/Users/Carlos L/Desktop/Resume.docx");
Reader r = null;
try {
r = new FileReader(file);
} catch (FileNotFoundException e) {
System.out.println("Error when locating the file: "+ e);
}
sdao.uploadResume(r);
}
}
Clob
对象而不是一个Reader
。 - MadProgrammer