当前位置: 首页 > news >正文

网站备案以后怎么做中石化胜利建设工程有限公司网站

网站备案以后怎么做,中石化胜利建设工程有限公司网站,有哪些做h5的网站,大连网站建设lccmMybatis的MapperXML映射文件应该处理数据库字段类型为CLOB和BLOB类型的数据呢?首先我们先看下CLOB和BLOB这两种数据类型的介绍。 介绍 使用Mybatis时涉及到两种特殊类型的处理,分别是Blob(Binary Large Object)和Clob&#xff0…

Mybatis的MapperXML映射文件应该处理数据库字段类型为CLOB和BLOB类型的数据呢?首先我们先看下CLOB和BLOB这两种数据类型的介绍。

介绍

使用Mybatis时涉及到两种特殊类型的处理,分别是Blob(Binary Large Object)和Clob(Character Large Object)。Blob表示二进制大对象字段,而Clob则表示大字符对象字段。这两种类型需要特殊处理。

Blob主要用于存储大型二进制数据,例如图像、音频或视频文件等。而Clob则用于存储大量文本数据,比如长篇文章、日志等。在JDBC中,PreparedStatement和ResultSet提供了相应的方法来支持Blob和Clob的操作,使得在数据库中存储和检索这些大型数据变得更加容易。

本文首发:https://www.panziye.com/java/7876.html

Mybatis作为一个持久层框架,也对Blob和Clob类型进行了支持。不同版本的Mybatis都提供了对这些类型的存储和读取操作的功能。下面将详细介绍Mybatis中如何操作Clob字段。

对应关系

BLOB和CLOB在不一样的数据库中对应的类型也不同:
 MySQL中:clob对应text/longtext,blob对应blob
Oracle中:clob对应clob,blob对应blob

Mapper.xml映射

Mapper文件中查询sql的id为queryByList,report_summary为Oracle数据库中的一个字段,是CLOB类型。myClob为java类,在java类中定义一个String类型的字段reportSummary,用于接收CLOB信息。

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

jdbcType="CLOB" typeHandler="org.apache.ibatis.type.ClobTypeHandler"
jdbcType="BLOB" typeHandler="org.apache.ibatis.type.BLOBTypeHandler"

2)案例代码

<select id="queryByList" parameterType="Map" resultMap="queryBaseResultMap">select  id ,title,type,report_summary,author from my_clobwhere 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>

3)如果你的Clob是文本信息,在java实体类中,可以直接使用String字符串去接收处理。

扩展

上面使用的是默认的mybatis提供的ClobTypeHandler,当然,你也可以自定义自己的handler进行处理,这样会有更好的灵活性。这里演示blob与String转换。

场景

数据库中有一个blob字段,在java中用String接收。使用如下方式读取:

<select id="find" resultType="com.example.bean.User">select id, name, experience, createTimefrom user
</select>

如果这里的experience字段为blob类型,那么取出来的数据就会乱码。

解决方法是自定义一个TypeHandler,通过继承BaseTypeHandler类实现。如下。

BlobToStringTypeHandler

先看xml应用:

<resultMap id="UserResultMap" type="com.example.bean.User"><id property="id" column="id"></id><result property="name" column="name"></result><result property="experience" column="experience" typeHandler="com.example.handler.BlobToStringTypeHandler"></result><result property="createTime" column="createTime"></result>
</resultMap><select id="find" resultMap="UserResultMap">select id, name, experience, createTimefrom user
</select>

再看BlobToStringTypeHandler代码:

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;import java.sql.*;public class BlobToStringTypeHandler extends BaseTypeHandler<String> {@Overridepublic void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {ps.setString(i, parameter);}@Overridepublic String getNullableResult(ResultSet rs, String columnName) throws SQLException {Blob blob = rs.getBlob(columnName);return new String(blob.getBytes(1, (int)blob.length()));}@Overridepublic String getNullableResult(ResultSet rs, int columnIndex) throws SQLException {Blob blob = rs.getBlob(columnIndex);return new String(blob.getBytes(1, (int)blob.length()));}@Overridepublic String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {Blob blob = cs.getBlob(columnIndex);return new String(blob.getBytes(1, (int)blob.length()));}
}

以上,通过继承BaseTypeHandler并实现其方法,将sql的blob类型字段与java的String类型互相转换。

附录

这里附上Mybatis JdbcType与Oracle、MySql数据类型对应列表

JdbcTypeOracleMySql
ARRAY
BIGINTBIGINT
BINARY
BITBIT
BLOBBLOBBLOB
BOOLEAN
CHARCHARCHAR
CLOBCLOB修改为TEXT
CURSOR
DATEDATEDATE
DECIMALDECIMALDECIMAL
DOUBLENUMBERDOUBLE
FLOATFLOATFLOAT
INTEGERINTEGERINTEGER
LONGVARBINARY
LONGVARCHARLONG VARCHAR
NCHARNCHAR
NCLOBNCLOB
NULL
NUMERICNUMERIC/NUMBERNUMERIC/
NVARCHAR
OTHER
REALREALREAL
SMALLINTSMALLINTSMALLINT
STRUCT
TIMETIME
TIMESTAMPTIMESTAMPTIMESTAMP/DATETIME
TINYINTTINYINT
UNDEFINED
VARBINARY
VARCHARVARCHARVARCHAR

如果表格中有遗漏,可以直接看https://www.panziye.com/java/7876.html

总结

以上就是MyBatis MapperXML如何处理CLOB和BLOB类型数据的全部内容,希望对你Java框架的学习有帮助!

推荐阅读

MyBatis Plus如何解决百万级大数据量查询慢问题

http://www.yayakq.cn/news/655308/

相关文章:

  • 无锡商业网站建设宁波网站建设慕枫科技
  • 手表网站制作aspnet网站开发视频
  • 高新区做网站的公司天猫网站的建设目标
  • 网站快照工具阿里网站备案
  • 做网站php河北唐山网站建设
  • 小说网站开发实训报告做印刷网站公司哪家好
  • 网站建设的可行性研究的前提免费咨询医生有问必答
  • 济南产品网站建设外包网站建设实训存在的问题
  • 35互联网站建设怎么样seo网站优化案例
  • 做网站用什么软件方便深圳网络技术有限公司
  • 深圳网站程序开发wordpress 手机 注册
  • 济南手机网站建设公司网页设计 网站建设啥意思
  • seo网站标题武穴市网站两学一做
  • 保定网站优化排名免费化妆品网站模板下载
  • 外贸怎么做公司网站长春网站建设优化
  • 嘉兴网站建设兼职十大黄冈网站排行榜
  • 东营房地产网站建设连云港网站建设连云港
  • 网站建设推广平台有哪些案例中优衣库所采用的网络营销方式
  • 中职网站建设与维护考试题黑龙江住房和城乡建设厅网站
  • 外面网站怎么做的苏州企业网站建设
  • 美丽乡村 村级网站建设做一下网站需要什么条件
  • 农村网站平台建设方案建设像京东一样的网站
  • 摄影网站模板下载app开发定制的公司哪家好
  • 网站建设实例固始县住房和城乡建设局网站
  • 自助搭建网站系统专业的建网站的公司
  • 做网站 附加信息办公室装修会计分录
  • 做一个网站需要多少时间食品包装设计理念
  • 怎么做网站旺铺装修重庆高端网站建设
  • 中国建设部官方网站最新国际新闻稿
  • 怎么将网站做成html微信小程序后端开发语言