- 浏览: 374686 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (292)
- jbpm3.2 (4)
- hibernate (1)
- struts (2)
- spring (7)
- oracle (20)
- TCP/UDP (3)
- SpringSide (4)
- maven (4)
- eclipse插件 (11)
- 模板引擎 (2)
- javascript (4)
- 设计模式 (2)
- 工作中遇到异常及解决 (3)
- java文件编译问题 (1)
- ehcache应用 (1)
- java反射 (1)
- jbpm4 (1)
- Google-Gson (1)
- Jquery (6)
- XML (5)
- 工作记事 (2)
- flash builder 4 (1)
- Lucene (8)
- struts2 (1)
- AspectJ (1)
- spring proxool连接池配置 (1)
- StringUtils (1)
- spring security (5)
- JAVA点滴 (9)
- jbpm4.3 (1)
- ACL (0)
- 线程 (7)
- Java线程:新特征-线程池 (1)
- MemCache (5)
- compass (0)
- NIO (2)
- zookeeper (4)
- 并发 (2)
- redis (9)
- Nginx (5)
- jvm (1)
- 互联网 (24)
- shell (3)
- CAS (1)
- storm (4)
- 数据结构 (3)
- MYSQL (3)
- fsdfsdfsd (0)
- hadoop (19)
- hive (3)
- IntelliJ (3)
- python (3)
- 23423 (0)
- spark (7)
- netty (9)
- nmon (1)
- hbase (8)
- cassandra (28)
- kafka (2)
- haproxy (3)
- nodejs (3)
- ftp (1)
最新评论
-
记忆无泪:
遇到这个问题我用的sed -i 's/\r$//' /mnt/ ...
CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方法 -
alenstudent:
Windows 下Nexus搭建Maven私服 -
dandongsoft:
lucene3+IK分词器 改造 lucene2.x+paoding -
duanyanrui:
学习了,支持
Google-Gson -
yscyfy:
这是你直接翻译过来的???
Google-Gson
前言:Oracle的blob操作的复杂性我想很多人都见识过了,首先要插入一个空的blob以获得光标。。。。(此处省略n字)
首先我们介绍hibernate的对应的配置:
对应于数据库字段我们怎样定义hibernate 的hbm.xml和POJO,对应于BLOB 和CLOB,我们在hbm.xml的定义方式如下:
BLOBàorg.springframework.orm.hibernate3.support.BlobByteArrayType CLOBàorg.springframework.orm.hibernate3.support.ClobStringType |
使用了上面的对应方式,在POJO里 对应的类型为
BLOB对应定义为byte[]
Clob对应定义为String
下面就轮到Spring里的定义,我们必须要给出如下配置(在以前提到过):
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" /> <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <property name="nativeJdbcExtractor"> <ref bean="nativeJdbcExtractor" /> </property> </bean> |
定义了上面的oracleLobHandler,我们还必须在Spring 整合hibernate的SessionFactory中将oracleLobHandler注入,如下:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="lobHandler" ref="oracleLobHandler" />
这样,我们就完成过了操作BLOB,CLOB的基本配置,以后我们操作hibernate对象时,里面有BLOB或者CLOB,我们的代码将和以前的代码一样,比如保存对象,下面一句话就 可以了,再也没有以前的烦恼了J
getHibernateTemplate().saveOrUpdate(o); |
给出一个操作照片的例子(本文 上面提到的都已经配置好了):
为了有一个更加直观的认识,在这里,我要介绍的是利用Spring+hibernate实现透明的blob操 作,其中blob字段使用的是我们经常要处理的图片,整个过程包括图片上传到服务器,保存到oracle数据库,最后读取图片显示在页面上。
首先我们配置Spring MVC的上传组件:
<!-- Spring 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--使用Cos FileUpload的调用方法 <bean id="multipartResolver" class="org.springframework.web.multipart.cos.CosMultipartResolver"> --> <property name="maxUploadSize"> <value>1048576</value> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean> |
我们需要在Spring的配置文件中加入上面的片段,当然我们还需要下载commons-fileupload-1.1.jar,这样Spring会自动调用common-fileupload组件来完成上传,Spring还集成了Cos文件上传组件,这里我用的是common-fileupload,接着我们需要做的就是指定一个VO来进 行数据存放,一般我们会利用hibernate 的POJO进 行数据存放,这样我们不用进行任何的转换就可以进行保存了。
注意我们要将照片上传放在POJO对 应的byte[]字段,所以我们还要在我们的controllor(注意:继承的是SimpleFormControllor,当然这个控制器也配置好了CommandClass)里加上下面的代码添加一个属性编辑器将照片放在对应的byte[]字段里:
/** * author:liushl */ protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) { binder.registerCustomEditor(byte[].class,new ByteArrayMultipartFileEditor()); } |
然后我们的代码和以前的普通的没有文件的form操 作一模一样,下面给一个例子,如果我的这个TCks有byte[]类型对应上传的文件:
protected ModelAndView onSubmit(HttpServletRequest arg0, HttpServletResponse arg1, Object command, BindException arg3) throws Exception { TCks tCks=(TCks) command; tcksdao.save(tCks);
return new ModelAndView(new RedirectView("index.do")); } |
是不是和以前的代码没有任何不同呢J但是这里我们可是完成了文件上传、blob保 存一系列我们以前头痛的问题呢!
照片的显示也是一个问题呢,我们现在透明的完成了blob字段的保存和读取,但是我们记得现在我们的照片已经变成了byte[]了,所以,在照片的显示上,我们不能像普通的String 类型的字段返回给页面解析了,下面给出一个照片显示的代码例子:在服务器端:
public ModelAndView showImage(HttpServletRequest request, HttpServletResponse response) throws Exception { String dsbh = (String) request.getParameter("dsbh"); Integer idsbh = new Integer(dsbh); TDs tds = tdsdao.get(idsbh); //显示照片。 streamImage(tds.getZp(), response.getOutputStream()); return null; } public void streamImage(final byte[] blob, final OutputStream contentStream) throws Exception {
ByteArrayInputStream is = new java.io.ByteArrayInputStream(blob); if (is != null) { FileCopyUtils.copy(is, contentStream); } } |
在JSP叶面要显示照片的地方,我们像如下定义:
<img src="/webapp /showImage.htm?dsbh=2"> |
这样照片显示就完成了,至此,我想Spring+hibernate已经展示了它在以前我们烦人的问题上展现了它独特的魅力。
发表评论
-
查看及修改oracle编码格式方法
2011-10-25 13:30 968--查看oracle数据库字符集: select us ... -
oracle11g 空表导出
2011-10-21 15:08 753oracle11g的新特性,数据条数是0时不分配segment ... -
oracle远程导入导出
2011-09-13 13:43 662远程导出/导入 exp/imp 用户名/密码@ ... -
oracle创建表空间、用户、用户授权
2011-08-27 16:38 855ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存 ... -
触发器编写
2011-06-28 23:56 778以前项目中编写的触发器 create or repla ... -
自己曾经写的同步数据的存储过程
2011-06-28 23:53 1321------------------------------- ... -
JDBC调用函数和存储过程
2011-06-28 23:49 2019JDBC调用存储过程 (1) Connection con ... -
Oracle游标使用的经验总结
2011-06-28 23:47 1003以下的文章主要是介绍Oracle游标使用,以下就是具体方案的描 ... -
oracle数组,游标,case查询
2011-06-28 23:45 1527create or replace procedure ttt ... -
oracle中SQL修改序列
2011-06-28 23:43 2049导入表数据时要修改表对应的序列值方法: declare ... -
oracle左连接的两种写法的差异
2011-06-28 23:42 1661有两个表T1和T2,两个表除了主键索引外均无其他索引,这两个表 ... -
Oracle左连接,右连接
2011-06-28 23:41 1559数据表的连接 有: 1、内连接(自然连接): 只有两个表相匹配 ... -
各种数据库使用JDBC连接的方式
2011-06-28 23:36 670下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使 ... -
oracle rownum和rowId
2011-06-28 23:34 964oracle rownum和rowId 精通 ... -
oracle2中分页语句
2011-06-28 23:33 505--第一种分页 rowidselect * from fee_ ... -
connect by prior(父找子,子找父)
2011-06-28 23:31 965详见com.ninetowns.ssh2Frame.userD ... -
事物的隔离级别
2011-06-28 23:26 974事务的四个属性:原子性(atomicity)、一致性(cons ... -
无法分配 111620 字节的共享内存 ("shared pool","select tfi.ins_process_name
2011-06-24 17:43 1166无法分配 111620 字节的共享内存 ("shar ... -
oracle服务器配置文件路径
2011-05-16 11:36 1737oracle安装目录\Db_1\NETWORK\ADMIN ...
相关推荐
这样,即使不直接使用Oracle数据库驱动,也能透明地处理Blob数据。 5. **Hibernate映射**:在Hibernate的映射文件中,将Blob类型的数据库字段映射为Java的`byte[]`类型,并指定类型为`org.springframework.orm....
1. **Hibernate概述**:Hibernate是Java平台上的一个开源ORM框架,它通过将Java对象与数据库表进行映射,实现了对象与SQL之间的透明交互,降低了数据库操作的复杂性。 2. **注解基础**:在Hibernate 3.2版本之后,...
Hibernate通过ORM(对象关系映射)技术,将Java对象映射到数据库表,实现了数据库操作的透明化。在这个系统中,Hibernate可能被用来处理学生信息、成绩数据的CRUD(创建、读取、更新、删除)操作,同时支持学生照片...
marlett_01_0109
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
stassar_3cd_01_0716
malpass_02_0907
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
matsumoto_01_1107
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
代码
大模型创业者手册-法务与产品合规篇.pdf
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
指标体系数据开发
半导体三极管β值测量仪的设计与制作
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
本文将带你深入了解如何使用OpenCV库实现图片拼接技术,打造令人惊叹的全景图像。通过清晰的步骤讲解和代码示例