国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

廣州的一起做網(wǎng)站seo關(guān)鍵詞排名優(yōu)化推薦

廣州的一起做網(wǎng)站,seo關(guān)鍵詞排名優(yōu)化推薦,wordpress點擊文字彈窗,wordpress wikiMybatis的MapperXML映射文件應(yīng)該處理數(shù)據(jù)庫字段類型為CLOB和BLOB類型的數(shù)據(jù)呢?首先我們先看下CLOB和BLOB這兩種數(shù)據(jù)類型的介紹。 介紹 使用Mybatis時涉及到兩種特殊類型的處理,分別是Blob(Binary Large Object)和Clob&#xff0…

Mybatis的MapperXML映射文件應(yīng)該處理數(shù)據(jù)庫字段類型為CLOB和BLOB類型的數(shù)據(jù)呢?首先我們先看下CLOB和BLOB這兩種數(shù)據(jù)類型的介紹。

介紹

使用Mybatis時涉及到兩種特殊類型的處理,分別是Blob(Binary Large Object)和Clob(Character Large Object)。Blob表示二進(jìn)制大對象字段,而Clob則表示大字符對象字段。這兩種類型需要特殊處理。

Blob主要用于存儲大型二進(jìn)制數(shù)據(jù),例如圖像、音頻或視頻文件等。而Clob則用于存儲大量文本數(shù)據(jù),比如長篇文章、日志等。在JDBC中,PreparedStatement和ResultSet提供了相應(yīng)的方法來支持Blob和Clob的操作,使得在數(shù)據(jù)庫中存儲和檢索這些大型數(shù)據(jù)變得更加容易。

本文首發(fā):https://www.panziye.com/java/7876.html

Mybatis作為一個持久層框架,也對Blob和Clob類型進(jìn)行了支持。不同版本的Mybatis都提供了對這些類型的存儲和讀取操作的功能。下面將詳細(xì)介紹Mybatis中如何操作Clob字段。

對應(yīng)關(guān)系

BLOB和CLOB在不一樣的數(shù)據(jù)庫中對應(yīng)的類型也不同:
?MySQL中:clob對應(yīng)text/longtext,blob對應(yīng)blob
Oracle中:clob對應(yīng)clob,blob對應(yīng)blob

Mapper.xml映射

Mapper文件中查詢sql的id為queryByList,report_summary為Oracle數(shù)據(jù)庫中的一個字段,是CLOB類型。myClob為java類,在java類中定義一個String類型的字段reportSummary,用于接收CLOB信息。

1)Mapper.xml文件加入如下配置可以讀取CLOB和BLOB類型的數(shù)據(jù)

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字符串去接收處理。

擴展

上面使用的是默認(rèn)的mybatis提供的ClobTypeHandler,當(dāng)然,你也可以自定義自己的handler進(jìn)行處理,這樣會有更好的靈活性。這里演示blob與String轉(zhuǎn)換。

場景

數(shù)據(jù)庫中有一個blob字段,在java中用String接收。使用如下方式讀取:

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

如果這里的experience字段為blob類型,那么取出來的數(shù)據(jù)就會亂碼。

解決方法是自定義一個TypeHandler,通過繼承BaseTypeHandler類實現(xiàn)。如下。

BlobToStringTypeHandler

先看xml應(yīng)用:

<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并實現(xiàn)其方法,將sql的blob類型字段與java的String類型互相轉(zhuǎn)換。

附錄

這里附上Mybatis JdbcType與Oracle、MySql數(shù)據(jù)類型對應(yīng)列表

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

總結(jié)

以上就是MyBatis MapperXML如何處理CLOB和BLOB類型數(shù)據(jù)的全部內(nèi)容,希望對你Java框架的學(xué)習(xí)有幫助!

推薦閱讀

MyBatis Plus如何解決百萬級大數(shù)據(jù)量查詢慢問題

http://m.aloenet.com.cn/news/1445.html

相關(guān)文章:

  • 免費做兼職的網(wǎng)站有嗎優(yōu)化網(wǎng)站排名解析推廣
  • 網(wǎng)站怎么做移動圖片東莞企業(yè)網(wǎng)站模板建站
  • 做房地產(chǎn)網(wǎng)站廣告銷售seo網(wǎng)站優(yōu)化培
  • 需求登記網(wǎng)站怎么做網(wǎng)絡(luò)營銷公司排行
  • 成都住建局官網(wǎng)有問題怎么辦站長seo綜合查詢
  • 中國建設(shè)銀行網(wǎng)站首頁下載自己怎么開網(wǎng)站
  • win2008 iis配置網(wǎng)站服務(wù)營銷理論
  • 網(wǎng)站訪問速度檢測快速網(wǎng)站推廣
  • 咔咔做受視頻網(wǎng)站百度用戶服務(wù)中心官網(wǎng)電話
  • 網(wǎng)站建設(shè)需求表網(wǎng)站怎么推廣
  • 網(wǎng)站營銷如何做快速收錄網(wǎng)
  • 深圳微信網(wǎng)站建設(shè)公司哪家好打廣告
  • 織夢轉(zhuǎn)易優(yōu)cmsseo專業(yè)學(xué)校
  • 九度互聯(lián)網(wǎng)站制作效果seo項目經(jīng)理
  • 設(shè)計門戶網(wǎng)站站內(nèi)seo和站外seo區(qū)別
  • 電銷管理系統(tǒng)軟件seo技術(shù)培訓(xùn)中心
  • 咸寧網(wǎng)站設(shè)計自制網(wǎng)頁
  • 旅游網(wǎng)站組織結(jié)構(gòu)圖怎么做小廣告網(wǎng)頁
  • 天津企商網(wǎng)站建設(shè)公司自動點擊器免費下載
  • 企業(yè)網(wǎng)站模板建站流程百度如何購買關(guān)鍵詞
  • 做蝦網(wǎng)站該起啥名好百度指數(shù)關(guān)鍵詞工具
  • 臺州企業(yè)網(wǎng)站搭建電話南寧seo怎么做優(yōu)化團(tuán)隊
  • 阜新住房建設(shè)委員會網(wǎng)站湖南企業(yè)seo優(yōu)化
  • 化妝品產(chǎn)品的自建網(wǎng)站喲哪些申請自己的網(wǎng)站
  • 網(wǎng)站建設(shè)尾款營銷咨詢公司排名前十
  • 哪些網(wǎng)站是做食品nba交易最新消息
  • 山東鑫泰建設(shè)集團(tuán)網(wǎng)站微信營銷推廣公司
  • 買了個域名怎么做網(wǎng)站網(wǎng)絡(luò)輿情分析師
  • 英文網(wǎng)站建設(shè)小程序開發(fā)
  • 360seo排名點擊軟件逆冬seo