使用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) {
..................
...全文
214 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 )
内容概要:本文提出了一种基于蒙特卡洛模拟与拉格朗日松弛法相结合的分散式优化方法,用于解决电动汽车充电站在分时电价机制下的有序充电调度问题。通过构建考虑用户充电需求与电网负荷平衡的优化模型,利用拉格朗日松弛法处理多车充电之间的耦合约束,实现去中心化的决策过程;同时引入蒙特卡洛方法模拟用户充电行为的不确定性,提升调度策略的鲁棒性。该方法有效降低了电网负荷峰谷差,提高了充电经济性与系统运行效率,为大规模电动汽车接入提供了可行的调度解决方案。; 适合人群:具备电力系统优化基础和Matlab编程能力的研究生、科研人员,以及从事智能电网、电动汽车能源管理等相关领域的工程技术人员。; 使用场景及目标:①应用于城市充电站集群的运营调度,实现削峰填谷与成本优化;②支撑电力系统需求侧管理研究,评估分时电价政策对用户充电行为的引导效果;③为多主体参与的分散式能源管理系统提供算法参考与仿真验证工具。; 阅读建议:建议读者结合提供的Matlab代码深入理解拉格朗日乘子迭代更新机制与蒙特卡洛场景生成流程,重点分析算法收敛性与不同电价策略下的调度结果差异,可通过调整用户数量、充电功率等参数进行仿真实验,以掌握模型的实际应用特性。

80,488

社区成员

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

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