Setzen von blob mit PreparedStatement auf null

Ich erstelle eine Webanwendung mit JSF2.0, wobei ich in MySQL Bilder mit Datentyp als speichereMEDIUMBLOB.

Zum Einfügen von Werten verwende ich PreparedStatement wie unten gezeigt.

PreparedStatement psmnt = con.prepareStatement("INSERT INTO sketchesSG002003 (userid, imageTitle, imageData, drawingComments) VALUES (?,?,?,?)");
psmnt.setLong(1, personalInfoId);
psmnt.setString(2, sketchesSG002003Title);

try {
    String fileName = FilenameUtils.getName(sketchesSG002003ImageUpload.getName());
    File image = new File(fileName);
    InputStream fis = sketchesSG002003ImageUpload.getInputStream();
    psmnt.setBinaryStream(3, fis, (int) sketchesSG002003ImageUpload.getSize());
} catch (Exception e) {
    psmnt.setBinaryStream(3, null);
}
psmnt.setString(4, sketchesSG002003Comments);
i = psmnt.executeUpdate();

Allerdings erhalte ich als Fehler

java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setBinaryStream(ILjava/io/InputStream;)V

Ein Teil von Stacktrace ist

 javax.faces.el.EvaluationException: java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setBinaryStream(ILjava/io/InputStream;)V
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

Ich glaube obiger fehler ist für aussagepsmnt.setBinaryStream(3, null);

Meine Frage ist, wie ich binäre Daten als null oder nichts einstellen kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage