2017-03-22 9 views
0

私が次のように私のコードスニペットを追加したエラーにJAVA jdbc blob?

"Exception in thread "main" java.lang.AbstractMethodError: 
Method com/mysql/jdbc/ServerPreparedStatement.setBinaryStream(ILjava/io/InputStream;)V is abstract 
    at com.mysql.jdbc.ServerPreparedStatement.setBinaryStream(ServerPreparedStatement.java) 
    at jdbc.demo.main(demo.java:21)". 

を与えているが、あなたは私が間違って何をやっている洞察力をお願いできますか?あなたがあなたのケースで見ることが起こる

import java.io.File; 
import java.io.FileInputStream; 
import java.sql.*; 
public class demo{ 

    public static void main(String args[]) throws Exception{ 

     String url = "jdbc:mysql://localhost:3306/tutorial1"; 
     String name = "root"; 
     String pass = "rubyonrails$"; 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection(url,name,pass); 

     String sql = "update binarylargeobject set resume=? where id=1"; 
     PreparedStatement st = con.prepareStatement(sql); 
     File file = new File("C:\\Users\\USER\\Desktop\\vid.pdf"); 
     FileInputStream input = new FileInputStream(file); 
     st.setBinaryStream(1,input); 
     st.executeUpdate(); 

    } 

} 
+0

こちらをお読みください:http://stackoverflow.com/questions/1194990/why-do-i-get-java-lang-abstractmethoderror-when-trying-to-load-a-blob-in-the-db –

答えて

1

AbstractMethodErrorお使いのMySQL JDBCコネクタ/ Jドライバが法setBinaryStream()を実装していないことを意味します。

もっと深いhereを掘り下げようとしたときに私が見つけた素晴らしい記事があります。

上記のWebサイトからは、5.1.36(JDBCタイプ4ドライバ)よりもMySQL JDBC Connector/Jバージョンが使用されています。

上記の提案で問題を解決できることを願っています。