接上一篇:http://lz726.iteye.com/blog/1882265
开发架构是struts+spring的。 DAO层就是用spring的jdbctemplate
大对象用了LobHandler,用这个东西问题也蛮多。
因为附件大小没有做限制,可能很大,所以采取流的方式。但是LobHandler 处理流的方式,网络上都找不到例子,就算找到了,也是不能用的,头大了。
界面上传进来的流,不懂为什么不能直接用LobHandler 入库,最后做了转换可以实现。代码如下:
final InputStream stream=(InputStream)cform.getValue("stream"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] bytes =new byte[10240]; int length=0; while ((length = stream.read(bytes)) != -1) { baos.write(bytes, 0, length); } baos.flush(); final InputStream bais=new ByteArrayInputStream(baos.toByteArray()); ireturn=jdbcTemplate.execute(sql.toString(),new AbstractLobCreatingPreparedStatementCallback(lobHandler){ protected void setValues(PreparedStatement pstmt,LobCreator lobCreator){ try { pstmt.setString(1, id); lobCreator.setBlobAsBinaryStream(pstmt,7,bais,bais.available()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } });
配置
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true"> </bean>
直接读取文件的,就可以。
final File file = new File("d:\\a.jpg"); LobHandler lobHandler = new DefaultLobHandler(); final InputStream input = new FileInputStream(file); final String filesize=String.valueOf(file.length()); ireturn=jdbcTemplate.execute(sql.toString(),new AbstractLobCreatingPreparedStatementCallback(lobHandler){ protected void setValues(PreparedStatement pstmt,LobCreator lobCreator){ try { pstmt.setString(1, id); lobCreator.setBlobAsBinaryStream(pstmt,7,input,(int)file.length()); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } });
现在还不知道,在不同中间件下是否有问题,是否支持tomcat以外的,开发环境是tomcat的没问题。
现在想来,所有问题都是可以解决的,只要是问题。相信吧~
相关推荐
c++课程设计-产品入库管理操作系统 c++课程设计-产品入库管理操作系统 c++课程设计-产品入库管理操作系统 c++课程设计-产品入库管理操作系统 c++课程设计-产品入库管理操作系统 c++课程设计-产品入库管理操作系统 ...
不错的c语言课程设计项目--产品入库管理操作系统 不错的c语言课程设计项目--产品入库管理操作系统 不错的c语言课程设计项目--产品入库管理操作系统 不错的c语言课程设计项目--产品入库管理操作系统 不错的c语言课程...
表格模板-入库单.ett
表格模板-入库单模板.ett
【作品名称】:入库登记台账-入库登记表-Excel模版 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
ERP标准流程之一----入库管理(doc 14)_CRM产品经理 需求规格说明书管理系统规格需求说明书模板.doc
【作品名称】:送货单-出库单-入库单-Excel模板 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
易制毒化学品管理台帐-入库出货登记表.doc
【作品名称】:送货单模板-出库单-入库单-Excel模板 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
【作品名称】:送货单-出库单-入库单模板-Excel模板 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
【作品名称】:进销存-入库明细表-Excel模板 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
ERP标准流程之--入库管理(doc 15)_CRM产品经理 需求规格说明书管理系统规格需求说明书模板.doc
本压缩包“Excel表格+Word文档各类各行业模板-入库验收单.zip”包含了Excel表格和Word文档的模板,特别针对入库验收这一业务流程,下面将详细介绍这两个工具在该场景中的应用和相关知识点。 1. Excel表格:Excel是...
C++毕业设计-产品入库管理操作系统(源码) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! C++毕业设计-产品入库管理操作系统(源码) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! C++毕业设计-...
工作计划,预算表,利润表,收货单,送货单,退货单,收支表 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
03-【入库】-01-固定资产入库表_行政管理体系 行政资料.xlsx
进销存系统,业务管理,责任考核表,会员管理,出入库,送货单 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
该模块负责管理仓库的入库操作,包括入库单的生成、入库单的审核、入库单的执行等。该模块的设计目的是提供一个高效、安全和可靠的入库管理系统,以满足仓库管理的需求。 知识点5:安全性设计 仓库管理系统的安全性...