一、BLOB字段

BLOB是指二进制大对象也就是英文Binary Large Object的所写,而CLOB是指大字符对象也就是英文Character Large Object的所写。其中BLOB是用来存储大量二进制数据的;CLOB用来存储大量文本数据。BLOB通常用来保存图片、文件等二进制类型的数据。

二、使用mybatis操作blob

1、表结构如下:

2、实体代码如下:

3、mybatis sql代码如下:

gt;

FROM BLOB_FIELD a

WHERE a.ID = #{id}

FROM BLOB_FIELD a

3、controller代码如下:

a、保存BLOB字段代码

uploadAttachment(@RequestParam(value = "testId",required = true) String testId,HttpServletRequest request)

throws UnsupportedEncodingException {

Mapresult = new HashMap();

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

// 获得文件

MultipartFile multipartFile = multipartRequest.getFile("Filedata");// 与前端设置的fileDataName属性值一致

String filename = multipartFile.getOriginalFilename();// 文件名称

InputStream is = null;

try {

//读取文件流

is = multipartFile.getInputStream();

byte[] bytes = FileCopyUtils.copyToByteArray(is);

BlobField blobField = new BlobField();

blobField.setTabName("testL");

blobField.setTabPkidValue(testId);

blobField.setBlobColName("attachment");

blobField.setBlobColValue(bytes);

//保存blob字段

this.testService.save(blobField,testId,filename);

result.put("flag",true);

result.put("attachmentId",blobField.getId());

result.put("attachmentName",filename);

} catch (IOException e) {

e.printStackTrace();

result.put("flag",false);

} finally {

IOUtils.closeQuietly(is);

}

return result;

}

b、读取BLOB字段

本例子将文件上传并保存到BLOB类型字段字段,下载的时候读取BLOB字段,并写入成输出流。

以上就是本文的全部叙述,希望对大家有所帮助。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐