ibatis+spring存储blob数据
来源:互联网 发布:穿衣搭配的软件 编辑:程序博客网 时间:2024/05/18 01:55
ibatis提供了TypeHandler接口,用于处理数据类型,基本的实现类为BaseTypeHandler 在spring 中,提供了AbstractLobTypeHandler作为基础类,并且提供了相应的模版方法,所有的工作由LobHandler处理。
BlobByteArrayTypeHandler 主要用于处理blob类型数据,使用byte[]来映射相应的blob
ClobStringTypeHandler 用于处理clob类型数据,使用字符串来映射Clob
有一点需要注意的是,AbstractLobTypeHandler中实现了事务支持,需要用来释放相应的资源,所以一定需要在事务环境中进行。
注:必须要加入事务环绕才能使用
2)在ibatis配置文件sqlmap-config.xml中加入
<typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler" />
3)#PICDATA:BLOB# 指定自定义类型
BlobByteArrayTypeHandler 主要用于处理blob类型数据,使用byte[]来映射相应的blob
ClobStringTypeHandler 用于处理clob类型数据,使用字符串来映射Clob
有一点需要注意的是,AbstractLobTypeHandler中实现了事务支持,需要用来释放相应的资源,所以一定需要在事务环境中进行。
1。在spring的配置文件applicationContext.xml中配置
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true" /> <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <property name="nativeJdbcExtractor"> <ref local="nativeJdbcExtractor"/> </property> </bean> <!-- Spring iBatis SqlMapClient --> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="classpath:sqlmap-config.xml"/> <property name="dataSource" ref="dataSource"/> <property name="lobHandler"> <ref local="oracleLobHandler"/> </property> </bean><!-- 事务管理器 --> <bean id="ibatisTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 事务拦截器 --> <tx:advice id="txAdvice" transaction-manager="ibatisTransactionManager"> <tx:attributes> <tx:method name="create*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="interceptorPointCuts" expression="execution(public * com.junze.huiju.*.bo..*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" /> </aop:config>
注:必须要加入事务环绕才能使用
2)在ibatis配置文件sqlmap-config.xml中加入
<typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler" />
3)#PICDATA:BLOB# 指定自定义类型
<insert id="create" parameterClass="com.junze.huiju.module.sms.info.SMSInfo"> <selectKey resultClass="int" keyProperty="ID" > select seq_m_sms.nextVal as value from dual </selectKey> insert into M_SMS(MLAT,MLON,PICDATA,PHONENUMBER,PHONENUMBERLIST,ID,PHONENAME,SMSDATA) values (#MLAT:VARCHAR2#,#MLON:VARCHAR2#,#PICDATA:BLOB#,#PHONENUMBER:VARCHAR2#,#PHONENUMBERLIST:VARCHAR2#,#ID#,#PHONENAME:VARCHAR2#,#SMSDATA:VARCHAR2#)</insert>
2.接下来就是vo类了,这个类也比较简单
public class Food { private String content; private String id; private byte[] image; private String name; ... }
上面的只是提供参考,具体的类可根据需要自己写
3.取得文件的byte数组,赋值给image
这样子就OK了,但是如果你使用的是oracle的其他jdbc驱动而不是ojdbc14.jar.就会出现上传的文件超出大小限制的异常。
- ibatis+spring存储blob数据
- spring ibatis 操作BLOB
- Ibatis + Spring 操作 Blob 详解
- Ibatis + Spring 操作 Blob 详解
- Ibatis读写CLOB,BLOB数据
- 基于ibatis插入Blob数据
- Spring Clob,Blob存储
- mybatis 存储blob数据
- Spring+ibatis批量存储
- Spring+ibatis批量存储
- MySQL存储 BLOB 类型数据
- 通过ibatis的blob 存储java的hashmap
- Spring+ibatis批量存储心得
- webwork+spring+ibatis顺利的存取BLOB字段- -
- 解决ibatis+spring+struts2 框架mysql blob字段问题
- 使用hibernate保存blob大数据,ibatis查询blob大数据
- ibatis中操作Oracle的blob,clob大数据方法
- ibatis 数据字段为blob如写配置文件
- VisualC++信息安全编程(3)内联汇编实现主引导区备份与恢复
- 东芝L730-T21N 升级小记
- VisualC++信息安全编程(4)实现文件自我删除
- VisualC++信息安全编程(5)获取windows登陆账户密码
- 各种NO-SQL的Web界面管理工具
- ibatis+spring存储blob数据
- SIP与H323
- 139. Every little helps a mickle. 聚沙成塔,集腋成裘
- Java之异常
- DAX的参数查询
- 偶得
- 谈面向对象的封装
- i2c驱动调试经验
- Delphi 设置代理服务