接上一篇: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
ERP标准流程之一----入库管理(doc 14)_CRM产品经理 需求规格说明书管理系统规格需求说明书模板.doc
易制毒化学品管理台帐-入库出货登记表.doc
马瑛-入库验收与质量控制.pptx
ERP标准流程之--入库管理(doc 15)_CRM产品经理 需求规格说明书管理系统规格需求说明书模板.doc
Excel表格+Word文档各类各行业模板-入库验收单.zip
仓库管理系统的设计与实现-(数据库设计和信息-入库管理部分)-仓库管理系统毕业论文.doc
sql由入库单与出库单统计库存 入库表 id 类别 品名 单位 数量 ----------- ---------- ---------- ---------- ----------- 1 办公 打印机 台 2 2 办公 打印机 台 1 3 办公 打印纸 盒 2 4 其它 电话 台 2 出库表 ...
03-【入库】-01-固定资产入库表_行政管理体系 行政资料.xlsx
表格模板-产品入库单.xlsx
表格模板-材料入库单.ett
表格模板-出入库登记.xlsx
采购库存模板-出入库管理系统.xlsx
表格模板-出入库明细表.xlsx
表格模板-出入库登记表.xls