項(xiàng)目開(kāi)發(fā)時(shí),有時(shí)候需要把一些小的圖片直接放到數(shù)據(jù)庫(kù)里,比如用戶的頭像。這時(shí)候就要用到blob字段。今天小博老師就以MySQL為例,為大家講解下如何使用Mybatis操作MySQL的blob類型字段。
MySQL的有四種blob類型:
類型大小(單位:字節(jié))
TinyBlob最大255
Blob最大65K
MediumBlob最大16M
LongBlob最大4G
MySQL中的這四種blob類型可以映射到mybatis中javabean的byte[]類型,需要使用mybatis的org.apache.ibatis.type.BlobTypeHandler 類型轉(zhuǎn)換處理器。
我們結(jié)合案例來(lái)看一下如何向blob字段寫(xiě)入數(shù)據(jù),首先假設(shè)我們數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:
faceImg是一個(gè)longblob類型。
User bean類對(duì)應(yīng)的字段設(shè)置為byte[]:
Mapper xml的映射關(guān)系如下:
測(cè)試代碼:
需要注意的就是ResultMap映射時(shí),需要指定typeHandler。另外不同的blob類型,對(duì)應(yīng)的容量不一樣,否則會(huì)出現(xiàn)錯(cuò)誤。
讀取類似,這里就不再贅述。