IBATIS操作BLOB和CLOB
数据库中有些字段因为存储的数据量大,而使用特殊格式进行存储,常用的数据类型为BLOB和CLOB格式。
BLOB(binary large object)和CLOB(Character Large Object)都是数据库中的一种保存文件所使用的类型。都用来存储大对象,BLOB是二进制大对象,是存储二进制文件的容器,典型的BLOB是一张图片或一个声音文件。CLOB使用CHAR来保存数据,常用来保存XML文档。
本次项目中的数据库(Oracle)使用的是BLOB来存储大量文本和数字信息。项目使用Ibatis来实现对BLOB的读取。需求是将BLOB数据读出来显示为字符串.按照一般的读字符串的写法做时会报错,显示为无法转换,那么就需要进行显示的配置转换类型.
数据库中字段类型为BLOB.
主要是Ibatis的配置:
<!--设置blob字段的返回格式--><resultMap id="tempblob" class="java.util.HashMap"><result property="CONTENT" column="CONTENT" jdbcType="BLOB" javaType = "java.lang.String" /></resultMap><!--通过cuid查到blog字段的数据,配置上返回格式为tempblob--><select id="queryBlobByCuid" parameterClass="java.lang.String" resultMap="tempblob">SELECT CONTENT FROM TEST WHERE CUID=#CUID# </select>
java代码如下:
/*** 通过cuid查询blob* @param cuid* @return blob的String* @throws Exception* @author WHuan*/public String getBlobByCuid(String serviceCuid) throws Exception {Map map = (Map) this.IbatisResDAO.getSqlMapClientTemplate().queryForObject(sqlMap+".queryBlobByCuid", serviceCuid);String StrResult="";if(map!= null){byte[] blobBytes = (byte[])map.get("CONTENT");//转为gbk编码 StrResult=new String(blobBytes,"GBK"); } return StrResult;}
如果没有配置tempblob格式来指定blob数据格式,而直接使用resultMap="java.lang.String",或者使用resultMap="oracle.sql.BLOB",或者使用resultMap="java.sql.Blob"这几种数据格式都是读不出来数据的,经过多次测试,有只用配置jdbcType="BLOB",javaType="java.lang.String",Ibatis才能正确识别,并将Blob数据转换成String进行输出.
CLOB也是同样情况,对CLOB的处理只需设置jdbcType="CLOB"即可.
IBATIS操作BLOB和CLOB相关推荐
- jdbc hibernate ibatis 操作Blob 和Clob类型字段(不断更新)
Class TestPhoto{ private Blob image; private String cretateDate; get()... set()... 方法 } hibernate Bl ...
- 操作BLOB、CLOB、BFILE
BFILE 二进制文件,存储在数据库外的操作系统文件,只读的.把此文件当二进制处理. BLOB 二进制大对象.存储在数据库里的大对象,一般是图像声音等文件. CLOB ...
- 在sqlplus中操作blob和clob
Tom在他的<Expert one on one oracle>给出了sqlplus中将文件load进BLOB或者CLOB字段的例子.这里保存一份以备急用. create director ...
- jpa blob mysql_Spring让BLOB 和Clob数据操作变得简单易行
本文讲解了在 Spring 中处理 LOB 数据的原理和方法,对于 Spring JDBC 以及 Spring 所集成的第三方 ORM 框架(包括 JPA.Hibernate 和 iBatis)如何处 ...
- Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型
http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 本文讲解了在 Spring 中处理 LOB 数据的原理和方法, ...
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
概述 如何获取本地数据连接 示例从DBCP数据源中获取Oracle的本地连接对象 相关接口操作 LobCreator LobHandler 插入LOB类型的数据 以块数据的方式读取LOB数据 以流数据 ...
- panzer 电力项目十一--hibernate操作大文本字段Blob和Clob
hibernate操作大文本字段Blob和Clob解决方案: 1.大文本字段Blob和Clob(流); 2.截串存取 第一步: 创建新表:Elec_CommonMsg_Content create t ...
- [oracle] Oracle存储过程里操作BLOB的字节数据的办法,例如写入32位整数
作者: zyl910 一.缘由 BLOB是指二进制大对象,也就是英文Binary Large Object的缩写. 在很多时候,我们是通过其他编程语言(如Java)访问BLOB的字节数据,进行字节级的 ...
- blob jdbc mysql,JDBC能否处理Blob和Clob?
Blob是指二进制大对象(Binary Large Object),而Clob是指大字符对象(Character Large Objec),因此其中Blob是为存储大的二进制数据而设计的,而Clob是 ...
最新文章
- 硬核!我的导师手写129页毕业论文,堪比打印!
- 人工智能:CNN过时了,有人提出GNN
- c# mvc5 view 多层_MVC5+EF6 入门完整教程13 -- 动态生成多级菜单
- AFNetworking 4.x高版本上传图片,后端采用springBoot测试
- Group Box组合框的简单使用 [大三TJB_708]
- 镇江 linux技术支持,东云镇江服务器
- 从程序员到项目经理(九):程序员加油站 -- 再牛也要合群
- win10 通过xrdp远程连接到ubuntu后,显示顶端快捷工具栏,显示最小化后的应用
- python tkinter获取屏幕大小_使用Python构建属于自己的Markdown编辑器
- Hadoop (一) Hadoop学习
- 根据消费定额生成菜单的算法(原创)
- hermite插值c语言程序,张艳-埃尔米特Hermite 插值逼近的C语言程序.doc
- 【UE】初识Slate编辑器-理解一个最基础的编辑器界面
- A Bluescreen By Any Other Color
- One_hot和Word2Vec两种词向量方法的原理及比较
- Qt--QObject
- 苹果a15处理器相当于骁龙多少 苹果a15处理器性能
- 多面张亚勤:导师、管理者和普通人
- 任意长度的python列表最后一个元素索引_任意长度的 Python 列表、元组和字符串中最后一个元素的下标为 ________ 。_学小易找答案...
- javascript的一点点学习记录