JSF2.0을 사용하여 webapplication을 만들고 있는데, mysql에서 데이터 유형을 MEDIUMBLOB
으로 저장하고 있습니다.PreparedStatement를 사용하여 BLOB를 null로 설정하십시오.
값을 삽입하려면 다음과 같이 PreparedStatement를 사용하고 있습니다.
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();
스택 트레이스의 일부가
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)
내가 위의 오류가 문이라고 생각하지만 내가
java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setBinaryStream(ILjava/io/InputStream;)V
으로 오류를 얻고있다
psmnt.setBinaryStream(3, null);
내 질문 할 수있는 방법입니다 이진 데이터를 Null 또는 Nothing으로 설정 했습니까?
이 문제는 JSF 관련이 없습니다. 내가 아는 –
그러나, 나는 그것을 포함하는 생각도 ... 아무것도 ... –