一、BLOB字段
BLOB是指二进制大对象也就是英文Binary Large Object的所写,而CLOB是指大字符对象也就是英文Character Large Object的所写。其中BLOB是用来存储大量二进制数据的;CLOB用来存储大量文本数据。BLOB通常用来保存图片、文件等二进制类型的数据。
二、使用mybatis操作blob
1、表结构如下:
2、实体代码如下:
3、mybatis sql代码如下:
3、controller代码如下:
a、保存BLOB字段代码
uploadAttachment(@RequestParam(value = “testId”,required = true) String testId,HttpServletRequest request)
throws UnsupportedEncodingException {
Map result = 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字段,并写入成输出流。
以上就是本文的全部叙述,希望对大家有所帮助。