javajdbc关于Blob和Clob,需要将doc文件上传到MySQL数据库
我目前正在自己做实验,学习一些JDBC以及如何将对象持久化到数据库。现在我正在尝试将文档上载到数据库。 我得到以下错误:javajdbc关于Blob和Clob,需要将doc文件上传到MySQL数据库,java,mysql,jdbc,blob,clob,Java,Mysql,Jdbc,Blob,Clob,我目前正在自己做实验,学习一些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(Pre
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);
}
}是在Java6中添加的,您正在使用之前的JDBC驱动程序
升级到与Java 6兼容的驱动程序,您的代码将正常工作。您的JDBC驱动程序可能不支持CLOB。看看,它创建了一个
Clob
对象,而不是Reader
是的,我替换了驱动程序,它成功了。该文件现在上传到数据库,但它是不清晰的,我看它通过php我的管理员,我使用XAMPP。是的,你是对的,我下载了最新的驱动程序,它工作。现在,当我将其上传到数据库时(我使用的是XAMPP和php my admin),我上传文档的专栏内容是不可读的,它充满了无意义的数据。这听起来像是另一个问题。;-)哈哈,我想我今天不能问更多的问题了。