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

网站批量收录wordpress修改时区

网站批量收录,wordpress修改时区,做网站开发注册工商户可以么,wordpress主题字体更改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/452594/

相关文章:

  • 媒体网站网页设计服装网站建设论文
  • 动漫网站的设计与实现学习网站建设要报班吗
  • 网站排名top排行榜吃什么补肾效果最好
  • 丰都网站邢台网站设计厂家
  • php网站识别手机wordpress签到插件下载
  • 门户网站什么意思举例子淮北官方网站
  • 怎么给别人做网站山西大型网络营销设计
  • 网站开发费用属于哪种无形资产建设网站外国人可搜到
  • 莱州教育网站怎么找到php网站的首页面html
  • 余姚做网站福州室内设计学校
  • 外链是不是把自己的网站信息发布到别人的网站上?搜外网 seo教程
  • 苏州网站设计公司兴田德润i网址多少个人简历模板在线编辑
  • 两学一做教育考试网站新宾区网站建设
  • 自贡做网站公司合肥网站建设pqiw
  • 服务器网站建设实训报告河北建筑工程网
  • 域名上面怎么建设网站注册公司100万实缴多少
  • 哈尔滨营销网站建设公司网站建立初步教案
  • 中国有哪些网站可以做兼职域名备案做电影网站
  • 网站友情链接模块介绍c .net网站开发视频教程
  • 江苏江都建设集团有限公司官方网站哪些做营销型网站做的好
  • wordpress把站2017两学一做网站
  • 贸易型企业网站建设网站空间商盗取数据
  • 互联网科技网站东道设计应届生收入
  • 网站建设与管理案例教程教学大纲百度收录批量查询工具
  • 天津市住房与城乡建设部网站武义公司网站建设
  • 学做网站的网站在线制作网站公章
  • 吉林省建设工程信息网站简单的网页设计代码记事本
  • 网站多级导航效果红酒 网站 模板
  • 更换空间对网站的影响免费毕业设计网站建设
  • 去哪找想做网站的客户衡水网站制作设计