Exception in thread "main" java.lang.AbstractMethodError: com.microsoft.sqlserve

ssc891127 2011-05-23 05:39:28
向sql server2005数据库中写入图片时出错 求各位大侠给个解释
错误为:
Exception in thread "main" java.lang.AbstractMethodError: com.microsoft.sqlserver.jdbc.SQLServerConnection.createBlob()Ljava/sql/Blob;
at day5_23.InputImage.main(InputImage.java:24)
import java.sql.SQLException;

import javax.imageio.ImageIO;
程序代码如下:
public class InputImage {
public static void main(String[] args) throws ClassNotFoundException, SQLException, MalformedURLException, IOException{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String urlName="jdbc:sqlserver://localhost:1433; DatabaseName=coreJava";
String name="sang";
String password="123456";
Connection conn=DriverManager.getConnection(urlName,name,password);
Blob coverBlob=conn.createBlob();
int offest=0;
Image coverImage=ImageIO.read(new URL("http://list.image.baidu.com/t/image_category/galleryimg/funny/funnything/gao_gfs.jpg"));
OutputStream out=coverBlob.setBinaryStream(offest);
ImageIO.write((RenderedImage) coverImage, "JPG", out);
PreparedStatement stat=conn.prepareStatement("INSERT INTO Cover VALUES(?,?)");
stat.setString(1,"023");
stat.setBlob(2, coverBlob);
}
}
...全文
814 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jishoupc 2012-05-05
  • 打赏
  • 举报
回复
先将Blob数据改成byte[]字节流
将最后一句改成
InputStream in = new ByteArrayInputStream(buf);
stat.setBinaryStream(2, in,(int)(in.available()))//转换为int因为版本过低
ChDw 2011-05-23
  • 打赏
  • 举报
回复
就是
stat.setBinaryStream(2, ((HttpURLConnection)new URL(...).openConnection()).getInputStream());
大致这样
ssc891127 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chdw 的回复:]
你用的jdbc驱动不支持createBlob方法,你可以尝试直接使用setBinarayStream方法等。或者换jdts驱动试试
[/Quote]

大侠可不可以给个清楚的说法 或者帮我改改代码 小人初学
ChDw 2011-05-23
  • 打赏
  • 举报
回复
你用的jdbc驱动不支持createBlob方法,你可以尝试直接使用setBinarayStream方法等。或者换jdts驱动试试

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧