当前位置: 代码网 > it编程>编程语言>Java > MyBatis处理CLOB/BLOB类型数据以及解决读取问题

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

2025年04月01日 Java 我要评论
前言使用mybatis时有两个类型需要特殊处理,blob(binary large object)是指二进制大对象字段,clob(character large object)是指大字符对象。其中bl

前言

使用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>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com