본문 바로가기

개발

Getting AbstractMethodError when calling setBinaryStream

Depending on your jdbc driver version the following code can fail to run.

1.File file = new File("image.jpg");
2.InputStream in = new FileInputStream(file);
3.preparedStatment.setBinaryStream(1, in, file.length());

The error you will see is as follows.

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

To fix this problem you need to change the call to setBinaryStream so the last parameter is passed as an integer instead of a long.

1.File file = new File("image.jpg");
2.InputStream in = new FileInputStream(file);
3.preparedStatment.setBinaryStream(1, in, (int) file.length());

출처 : http://helpdesk.objects.com.au/java/getting-abstractmethoderror-when-calling-setbinarystream



MS-SQL에 이미지 파일을 넣는 부분을 하면서 발생한 오류 : 

java.lang.AbstractMethodError: org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setBinaryStream(ILjava/io/InputStream;


MS-SQL에 이미지 파일을 넣으면서 preparedStatment의 setBinaryStream(int parameterIndex, inputstream x)를 사용하였는데 발생한 오류다. 

위의 내용을 보면 jdbc 드라이브 버전에 따라 발생할 수도 있는 오류라고 되어있고 해결 방법으로는 setBinaryStream(int parameterIndex, inputstream x, int length)를 사용하면 해결된다고 되어있다.

나도 당연히 이렇게 했더니 바로 해결되었음. 완전 행복~~~~ ^________________________^


네이버에는 절대 안나옴. 구글링하니 바로 나오던데.....

어떻게 보면 우리나라는 프로그램이 너무 한쪽으로만 편향되는 경향이 많은거 같다. (java = oracle, asp.net = ms-sql 같이)

나오는 자료들(카페, 블로그)도 보면 거의 비슷비슷한 것들만..... 구글링해보면 해외 사이트에는 정말정말 다양한 사람들이 다양한 환경에서 다양한 언어로.. 그것도 상당히 심도 있게 연구하고 개발하는 것같다. 커뮤니케이션도 상당히 발달해 있는거 같아 부럽...다.

영어만 좀 잘했어도... 나도 한글자라도 적어보고 싶지만,,,, 찾아서 해석하기도 바빠서....ㅠㅜ



관련글 : 2012/08/10 - [Developer/Java] - 이미지 파일을 DB에 넣기



728x90

'개발' 카테고리의 다른 글

GitHub  (0) 2012.08.14
이미지 파일을 DB에 넣기  (0) 2012.08.10
[juno] svn plugin  (0) 2012.07.17