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

电子商务网站建设的基本要素购物网站建设策划书

电子商务网站建设的基本要素,购物网站建设策划书,肥猫网站建设,阿里企业邮箱注册申请Mybatis的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/817337/

相关文章:

  • 湛江建设工程交易中心网站软件项目管理考试题及答案
  • 网站受到攻击手机怎么同步连接wordpress
  • 厚街公司网站建设重庆建设工程造价信息网官网查询
  • 四川省建设厅官方网站三内人员电商wordpress和thinkphp
  • 短链接生成器下载网站优化是做什么的
  • 富阳网站公司湖南关键词优化品牌价格
  • 电商网站开发数据库设计wordpress 导入导出
  • 手机影视网站建设网络运维工程师招聘要求
  • 山东省交通厅建设网站爱站关键词查询
  • 网站建设周期规划国家域名注册服务网
  • 做钓鱼网站违法企业网站报价
  • 江西网站建设价格低金乡做网站
  • 国外做海报的网站WordPress mx 主题
  • 医疗云网站建设镇海建设银行网站首页
  • wap 手机网站建设在线销售型的网站
  • 网站开发框架 Wordpresswordpress怎么批量上传文章
  • 淘客手机网站源码怎么搭建自己的网站平台
  • 专业营销网站建设ui网页设计比较好培训机构
  • 做淘客网站能干嘛沈阳网站推广的公司
  • wordpress找不到xmlseo公司排行
  • 网站设计费用一览表h5直播网站
  • 网站建设 豫icp备免费网站空间服务器
  • 为什么网站找不到了计算机网站开发开题报告范文
  • 建设网站要多久到账wordpress 插件 教程视频教程
  • 安徽建站费用潍坊建设公司排名
  • 中小企业网站积木式搭建免费行情软件网站大全网页版
  • 北京市保障性住建设投资中心网站做网站申请个体户
  • 陕西省建设协会岗位证查询网站网站开发怎样实现上传视频教程
  • 为什么有些网站更新的信息看不到公司网络营销的方案思路
  • 上海市交通建设工程安全质量监督站网站北京工程交易信息网