加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

深入浅析mybatis oracle BLOB类型字段保存与读取

发布时间:2020-12-12 17:01:51 所属栏目:百科 来源:网络整理
导读:一、BLOB字段 BLOB是指二进制大对象也就是英文Binary Large Object的所写,而CLOB是指大字符对象也就是英文Character Large Object的所写。其中BLOB是用来存储大量二进制数据的;CLOB用来存储大量文本数据。BLOB通常用来保存图片、文件等二进制类型的数据。

一、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字段,并写入成输出流。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读