ibatis+spring存储blob数据

spring+mybatis下BLOB字段的图片存取代码 spring+mybatis下BLOB字段的图片存取代码,仅整理了Controller层的代码,service和dao的代码很简单,所以没有整理 立即下载
ibatis提供了TypeHandler接口,用于处理数据类型,基本的实现类为BaseTypeHandler 在spring 中,提供了AbstractLobTypeHandler作为基础类,并且提供了相应的模版方法,所有的工作由LobHandler处理。
   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.就会出现上传的文件超出大小限制的异常。





 


利用spring的jdbcTemplate处理blob、clob spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。 立即下载

相关推荐

spring blob相关

spring操作oralce blob字段相关的资料

Ibatis 中的 oracle LOB 字段处理

方法一来源:http://opensource2.atlassian.com/confluence/oss/display/IBATIS/How+do+I+use+a+BLOB+or+CLOBHere is an example of how to use the Custom Type Handler (CTH) feature of iBatis with large objects

3578

EDA虚拟机分享2020版本(Synopsys2020)

EDA虚拟机分享

亦安的数字小站 9189

IBATIS操作BLOB和CLOB

数据库中有些字段因为存储的数据量大,而使用特殊格式进行存储,常用的数据类型为BLOB和CLOB格式。          BLOB(binary large object)和CLOB(Character Large Object)都是数据库中的一种保存文件所使用的类型。都用来存储大对象,BLOB是二进制大对象,是存储二进制文件的容器,典型的BLOB是一张图片或一个声音文件。CLOB使用CHAR来保

在你最感兴趣的事物上,隐藏着你人生的秘密 1万+

企业网络改造必看:如何用华为S5700三层交换机解决多部门隔离通信?

本文详细介绍了如何利用华为S5700三层交换机解决企业多部门网络隔离与通信需求。通过划分VLAN实现逻辑隔离,并配置三层路由实现受控互通,结合ACL进行精细访问控制,构建安全高效的企业网络。文章提供了从拓扑规划、地址分配到核心配置的完整实战指南。

weixin_29260291的博客 261

本地服务器搭建Uptime Kuma网站监控服务

本文主要介绍如何在Linux系统中一键部署Uptime Kuma运维监控服务,并将这个服务映射至公网实现随时随地远程访问。如果您像我一样在服务器上托管了多个网站,并且没有足够的时间来手动检查每个网站的在线状态,那么当出现问题时,您可能无法及时收到通知来处理这些问题。因此,搭建一个在线监控服务是很有必要的,它可以在状态异常时提醒您,以便您能够及时处理问题,确保网站的稳定性和可用性。监控服务有很多,我最终选择了Uptime Kuma,因为Uptime Kuma是开源免费的,

Tiam_cr的博客 1822

spring ibatis clob

iBATIS作为一个易于易用的orm(sql mapping)工具,已经广泛应用在国内的大量的项目中,成熟的iBATIS2已经为社区服务了三年之久,在iBATIS2.3.0中已经废弃了其自带的DAO的框架,转而推荐Spring 提供的ibatis support dao框架,从而得到所有依赖注入,bean管理和template以及声明式事务带来的好处。 本文就在使用过程中Spring DAO + ...

宏基小键盘 210

116、影像质量主观评价方法论:标准场景与专家判读

本文探讨了影像质量主观评价的方法论,强调标准场景构建和专家判读体系的重要性。作者基于15年行业经验指出,仅靠客观指标无法保证观感质量,提出四类标准场景(灰阶、肤色、纹理、动态)的构建原则和四种专家判读维度(通透性、干净度、自然感、流程化)。文章揭示了主观评价中的常见误区,包括光源单一性、个人判读偏差、显示设备影响等,并建议建立多专家交叉验证机制和主观评价数据库。最后强调主观评价是可标准化的专业技术,需要将人眼感知转化为可追溯的技术参数。

sundong_81的博客 39

iBATIS操作Blob与Clob浅析

public class T3 { public static void main(String[] args){ String filePath = "E:\\softoon\\workspace_softoon\\TestMobile\\src\\1.docx"; String outFilePath = "E:\\softoon\\workspace_softoon\\T...

iteye_4972的博客 265

使用CUDA进行按流排序的内存分配的示例程序

在GPU编程中,按流排序的内存分配是一种常见的优化技术,它可以提高内存访问的效率。通过将内存分配与特定的CUDA流相关联,可以确保在GPU上的并发操作期间,内存分配操作与其他GPU计算操作同时进行,从而减少了潜在的内存访问延迟。请注意,上述示例中的代码仅供参考,并可能需要根据实际需求进行修改和调整。此外,为了完整性,我们省略了一些细节,例如主机指针的分配和释放,以及错误处理和错误检查等。在该示例中,我们创建了4个CUDA流,并使用内存池进行内存分配。然后,我们在每个流上执行了相应的内存访问操作,并使用。

Byte_O_O的博客 281

【WLAN】【基础知识】WIFI那些事儿之信道和频谱(涵盖2.4G、5G、6G,全网最全)

- 从事WIFI相关开发或测试工作,经常要和信道、频宽、频率等打交道,本文仅将平时涉及的2.4G、5G、6G的信道、频宽、频率等做一总结。 - 一图胜万言,本文汇总了工作中经常用到的频谱图,保证全网最全!!! - 本博客地址,https://blog.youkuaiyun.com/qxhgd,欢迎各位关注,转发请注明出处。

一介草民,只为生活。 1万+

BLOB字段数据读取

 因为开发的时候公司的项目,所以只能说明不能截图了,在这里请大家谅解。      BLOB这个字段,首先是存大数据的,本人倒是不建议在数据库中存入那么大的数据,影响服务器性能。而且如果表没有采用分布存储,没有考虑维护,一段时间就会很大,本人一点见解,表大小超过1G的容量时候,明显影响数据读取速度。这个扯的有点远了,回归正题。   我了解的系统是用HIBernate 读取大容量的BLOB,中间采...

草根程序员 1142

2026最新YOLO26改进:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

针对YOLO26模型改进痛点,本专栏整理200+实战验证方法,覆盖卷积层、注意力机制等核心模块。 每种方法含原理、性能分析、改进路径及实操流程,代码可直接运行,快速提升模型效果,性价比超高。

魔改工程师的博客 1万+

ibatis oracle 存储blob字段处理,webwork spring ibatis顺利的存取BLOB字段/ibatis

项目开发马上就要用到文件的上传、下载、照片的显示等功能,可是手头还是没有现成的解决方案,心一横,就决定今天要搞定它。分两步走的:1,先把文件拿到webwork的action里面。这个我想了许多办法,多半是因为自己无知吧,先是给文件的属性设置为byte[],页面上则是,这样提交到action里面时,通过request死活拿不到文件数据,伤心了一会,上网google,终于找到一段有价值的文字,可能是r...

weixin_29189373的博客 262

告别标注地狱!YOLO+CLIP多模态零样本检测全实战:图文联合推理,想检测什么直接输文字,不用训模型

这套方案我给朋友的超市用了快3个月,运行极其稳定,临期商品的检测准确率能到96%,后续加了“货架空货检测”“通道杂物堆积检测”,都是改一行文本就搞定,完全不用重新开发,朋友说省了十几万的定制开发费用。很多做计算机视觉的朋友,总觉得目标检测必须标数据、训模型,其实不是的。现在多模态大模型的能力已经足够强,把YOLO的定位能力和CLIP的图文泛化能力结合起来,就能用极低的成本,搞定绝大多数定制化检测需求。对于我们开发者来说,技术的价值从来不是炫技,而是用最简单的方案,解决最实际的问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 516

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

使用ibatis调用数据库中blob类型的数据

目标: 在oracle里建一个字段,存储为一个blob类型,用于存储图片或者是其它格式的流信息或大数据,数据库中间件使用ibatis,主要做图片的存储使用,服务器使用weblogic 实现的时候碰到的问题: ibatis对blob类型的数据有一个专门的支持.需要配置相关的配置文件,框架中使用了部分Spring的配置,在读出的图片进行写入的时候碰到问题为不能正确write到页面上,后使用纯se...

wineer200的专栏 457

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spring让LOB数据操作变得简单易行

  Spring让LOB数据操作变得简单易行 2007-08-20 16:35:46 标签:Spring CLOB LOB JAVA BLOB   [推送到技术圈]   本文讲解了在 Spring 中处理 LOB 数据的原理和方法,对于 Spring JDBC 以及 Spring 所集成的第三方 ORM 框架(包括 JPA、Hibernate 和

gotohbu的专栏 658

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring 让 LOB 数据操作变得简单易行

概述 LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型,前者用于存储大块的二进制数据,如图片数据,视频数据等,而后者用于存储长文本数据,如论坛的帖子内容,产品的详细描述等。值得注意的是:在不 同的数据库中,大对象对应的字段类型是不尽相同的,如 DB2 对应 BLOB/CLOB,MySql 对应 BLOB/LONGTEXT,SqlServer 对应 IMAGE/TEXT。需要指出的是...

zhangziyangup 114

ibatis+spring操作oracle数据库的blob数据

忘记是从哪里转载来的了…… sqlMapConfig.xml中增加配置: <!-- 操作blob数据所需配置 --><typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support.BlobByteArrayT...

weixin_34200628的博客 139
上一篇: android操作手机通讯录
下一篇: android获取图片数据
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值