使用setBlob把图片保存到sqlserver数据库出错

hunter1193 2020-03-12 03:28:20
想把图片保存到sqlserver数据库中,执行下面一句就崩溃,请帮忙看看:

protected String doInBackground(Integer... integers) {
Connection conn = DBUtil.getSQLConnection();
try {
String s = "";
s+="insert into customer (name,email,birth,picture) values(?,?,?,?)";
PreparedStatement ps=conn.prepareStatement(s);
...................
String png="/data/data/com.jyd.bmpmysql/a03.png";
InputStream fis=new FileInputStream(png);
System.out.println("aaa1503....."+fis.toString().trim());
ps.setBlob(4, fis); // 执行到这一句程序就崩溃
ps.executeUpdate();
ps.close();
conn.close();
} catch (SQLException e) {
..................
...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunter1193 2020-03-13
  • 打赏
  • 举报
回复
java.lang.AbstractMethodError: abstract method "void java.sql.PreparedStatement.setBlob(int, java.io.InputStream)"
hunter1193 2020-03-13
  • 打赏
  • 举报
回复
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 Process: com.jyd.bmpmysql, PID: 11518 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:309) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) at java.util.concurrent.FutureTask.setException(FutureTask.java:223) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) Caused by: java.lang.AbstractMethodError: abstract method "void java.sql.PreparedStatement.setBlob(int, java.io.InputStream)" at com.jyd.bmpmysql.MainActivity$taskQueryPom.doInBackground(MainActivity.java:77) at com.jyd.bmpmysql.MainActivity$taskQueryPom.doInBackground(MainActivity.java:49) at android.os.AsyncTask$2.call(AsyncTask.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  at java.lang.Thread.run(Thread.java:818) 
hunter1193 2020-03-13
  • 打赏
  • 举报
回复
换了jar包还是不行,原来是jtds-1.2.7,换成jtds-1.3.1还是不行。
bdmh 2020-03-12
  • 打赏
  • 举报
回复
看你的错误信息
hunter1193 2020-03-12
  • 打赏
  • 举报
回复
后台表customer 结构 create table dbo.customer( id int identity(1,1), name varchar(20), email varchar(20), birth datetime, picture image )

80,352

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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