MyBatis处理CLOB/BLOB类型数据以及解决读取问题

 更新时间:2025年04月01日 09:39:39   作者:luckySnow-julyo  
这篇文章主要介绍了MyBatis处理CLOB/BLOB类型数据以及解决读取问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

使用Mybatis时有两个类型需要特殊处理,Blob(Binary Large Object)是指二进制大对象字段,Clob(Character Large Object)是指大字符对象。其中Blob是为存储大的二进制数据而设计的,而Clob是为存储大的文本数据而设计的。

JDBC的PreparedStatement和ResultSet都提供了相应的方法来支持Blob和Clob操作,Mybatis各版本也支持对Blob或者Clob的存储以及读取操作,本文详细介绍Mybatis中Clob字段的操作。

一、CLOB和BLOB介绍

BLOB和CLOB都是大字段类型。(java)

BLOB是按二进制来存储的,而CLOB是能够直接存储文字的。(sql)

一般像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。文章或者是较长的文字,就用CLOB存储数据库

BLOB和CLOB在不一样的数据库中对应的类型也不同:

  • MySQL 中:clob对应text/longtext,blob对应blob
  • Oracle中:clob对应clob,blob对应blob

MyBatis提供了内建的对CLOB/BLOB类型列的映射处理支持。(app)

二、编写Mapper文件

如下所示:Mapper文件中查询sql的id为queryByList,report_summary为Oracle数据库中的一个字段,是CLOB类型。

myClob为java类,在java类中定义一个String类型的字段reportSummary,用于接收CLOB信息。

Mapper.xml文件加入如下配置可以读取CLOB和BLOB类型的数据

jdbcType="CLOB" typeHandler="org.apache.ibatis.type.ClobTypeHandler"
jdbcType="BLOB" typeHandler="org.apache.ibatis.type.BLOBTypeHandler"
<select id="queryByList" parameterType="Map" resultMap="queryBaseResultMap">
    select  id ,title,type,report_summary,author from my_clob
    where 1 = 1 order by ${orderByClause}
</select>
<resultMap id="queryBaseResultMap" type="com.mxm.model.MyClob" >
    <id column="Id" property="id" jdbcType="INTEGER" />
    <result column="type" property="type" jdbcType="INTEGER" />
    <result column="title" property="title" jdbcType="VARCHAR" />
    <result column="author" property="author" jdbcType="VARCHAR" />
    <result column="report_summary" property="reportSummary" jdbcType="CLOB" typeHandler="org.apache.ibatis.type.ClobTypeHandler">
</resultMap>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决SpringBoot连接SqlServer出现的问题

    解决SpringBoot连接SqlServer出现的问题

    在尝试通过SSL与SQL Server建立安全连接时,如果遇到“PKIX path building failed”错误,可能是因为未能正确配置或信任服务器证书,当"Encrypt"属性设置为"true"且"trustServerCertificate"属性设置为"false"时,要求驱动程序使用安全套接字层(SSL)加密与SQL Server建立连接
    2024-10-10
  • Spring Boot中的Properties的使用详解

    Spring Boot中的Properties的使用详解

    这篇文章主要介绍了Spring Boot中的Properties的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 在Spring Boot2中使用CompletableFuture的方法教程

    在Spring Boot2中使用CompletableFuture的方法教程

    这篇文章主要给大家介绍了关于在Spring Boot2中使用CompletableFuture的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2019-01-01
  • SpringBoot XSS攻击的常见形式与防范方法

    SpringBoot XSS攻击的常见形式与防范方法

    XSS攻击是指攻击者在Web页面的输入数据中插入恶意脚本,当其他用户浏览该页面时,这些脚本就会在用户的浏览器上执行,可能导致信息泄露、会话劫持、恶意操作等安全风险,本文给大家介绍了SpringBoot XSS攻击的常见形式与防范方法,需要的朋友可以参考下
    2024-11-11
  • 常用的ResponseEntity.BodyBuilder和自定义ResponseEntity的实例

    常用的ResponseEntity.BodyBuilder和自定义ResponseEntity的实例

    这篇文章主要介绍了常用的ResponseEntity.BodyBuilder和自定义ResponseEntity的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • JAVA ArrayList详细介绍(示例)

    JAVA ArrayList详细介绍(示例)

    本文对JAVA ArrayList做了详细介绍,文中学到了ArrayList源码解析、ArrayList遍历方式、toArray()异常,最后给出了ArrayList示例。
    2013-11-11
  • 2个java希尔排序示例

    2个java希尔排序示例

    java希尔排序示例,希尔排序是插入排序的一种类型,也可以用一个形象的叫法缩小增量法,需要的朋友可以参考下
    2014-05-05
  • Java 将HTML转为XML的详细步骤

    Java 将HTML转为XML的详细步骤

    这篇文章主要介绍了Java 将HTML转为XML,本文将以html转为xml格式为例,介绍如何实现转换,以下是详细方法及步骤,需要的朋友可以参考下
    2022-06-06
  • Java简单实现动态代理模式过程解析

    Java简单实现动态代理模式过程解析

    这篇文章主要介绍了Java动态代理模式简单案例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java服务器处理图片上传的方法

    Java服务器处理图片上传的方法

    这篇文章主要为大家详细介绍了Java服务器处理图片上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06

最新评论