数据库中有些字段因为存储的数据量大,而使用特殊格式进行存储,常用的数据类型为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相关推荐

  1. jdbc hibernate ibatis 操作Blob 和Clob类型字段(不断更新)

    Class TestPhoto{ private Blob image; private String cretateDate; get()... set()... 方法 } hibernate Bl ...

  2. 操作BLOB、CLOB、BFILE

    BFILE        二进制文件,存储在数据库外的操作系统文件,只读的.把此文件当二进制处理. BLOB        二进制大对象.存储在数据库里的大对象,一般是图像声音等文件. CLOB    ...

  3. 在sqlplus中操作blob和clob

    Tom在他的<Expert one on one oracle>给出了sqlplus中将文件load进BLOB或者CLOB字段的例子.这里保存一份以备急用. create director ...

  4. jpa blob mysql_Spring让BLOB 和Clob数据操作变得简单易行

    本文讲解了在 Spring 中处理 LOB 数据的原理和方法,对于 Spring JDBC 以及 Spring 所集成的第三方 ORM 框架(包括 JPA.Hibernate 和 iBatis)如何处 ...

  5. Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型

    http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 本文讲解了在 Spring 中处理 LOB 数据的原理和方法, ...

  6. Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据

    概述 如何获取本地数据连接 示例从DBCP数据源中获取Oracle的本地连接对象 相关接口操作 LobCreator LobHandler 插入LOB类型的数据 以块数据的方式读取LOB数据 以流数据 ...

  7. panzer 电力项目十一--hibernate操作大文本字段Blob和Clob

    hibernate操作大文本字段Blob和Clob解决方案: 1.大文本字段Blob和Clob(流); 2.截串存取 第一步: 创建新表:Elec_CommonMsg_Content create t ...

  8. [oracle] Oracle存储过程里操作BLOB的字节数据的办法,例如写入32位整数

    作者: zyl910 一.缘由 BLOB是指二进制大对象,也就是英文Binary Large Object的缩写. 在很多时候,我们是通过其他编程语言(如Java)访问BLOB的字节数据,进行字节级的 ...

  9. blob jdbc mysql,JDBC能否处理Blob和Clob?

    Blob是指二进制大对象(Binary Large Object),而Clob是指大字符对象(Character Large Objec),因此其中Blob是为存储大的二进制数据而设计的,而Clob是 ...

最新文章

  1. 硬核!我的导师手写129页毕业论文,堪比打印!
  2. 人工智能:CNN过时了,有人提出GNN
  3. c# mvc5 view 多层_MVC5+EF6 入门完整教程13 -- 动态生成多级菜单
  4. AFNetworking 4.x高版本上传图片,后端采用springBoot测试
  5. Group Box组合框的简单使用 [大三TJB_708]
  6. 镇江 linux技术支持,东云镇江服务器
  7. 从程序员到项目经理(九):程序员加油站 -- 再牛也要合群
  8. win10 通过xrdp远程连接到ubuntu后,显示顶端快捷工具栏,显示最小化后的应用
  9. python tkinter获取屏幕大小_使用Python构建属于自己的Markdown编辑器
  10. Hadoop (一) Hadoop学习
  11. 根据消费定额生成菜单的算法(原创)
  12. hermite插值c语言程序,张艳-埃尔米特Hermite 插值逼近的C语言程序.doc
  13. 【UE】初识Slate编辑器-理解一个最基础的编辑器界面
  14. A Bluescreen By Any Other Color
  15. One_hot和Word2Vec两种词向量方法的原理及比较
  16. Qt--QObject
  17. 苹果a15处理器相当于骁龙多少 苹果a15处理器性能
  18. 多面张亚勤:导师、管理者和普通人
  19. 任意长度的python列表最后一个元素索引_任意长度的 Python 列表、元组和字符串中最后一个元素的下标为 ________ 。_学小易找答案...
  20. javascript的一点点学习记录

热门文章

  1. java keystore 私钥,从Java Keystore文件中提取私钥、证书
  2. 基于数字孪生概念,开启精细化城市管理模式
  3. wsappx关不掉_win10系统wsappx.exe进程可以关闭吗
  4. 细雨算法:B2B的配图图片是否可留联系方式,占比应为多大?
  5. 制造业信息化包括哪些具体内容?
  6. 网页出现乱码及乱码解决方案汇总(转帖),供网友参考;
  7. python英文聊天机器人(亲测可用)
  8. 【C#】七层登录机房重构
  9. 马云,受聘顶尖大学荣誉教授!聘期3年!
  10. 003:NumPy的应⽤-1