好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > 深入淺析mybatis oracle BLOB類(lèi)型字段保存與讀取

深入淺析mybatis oracle BLOB類(lèi)型字段保存與讀取

熱門(mén)標(biāo)簽:慧營(yíng)銷(xiāo)crm外呼系統(tǒng)丹丹 地圖標(biāo)注養(yǎng)老院 哪個(gè)400外呼系統(tǒng)好 愛(ài)客外呼系統(tǒng)怎么樣 開(kāi)發(fā)外呼系統(tǒng) 百度地圖標(biāo)注途經(jīng)點(diǎn) 哈爾濱電話機(jī)器人銷(xiāo)售招聘 山東crm外呼系統(tǒng)軟件 圖吧網(wǎng)站地圖標(biāo)注

一、BLOB字段

  BLOB是指二進(jìn)制大對(duì)象也就是英文Binary Large Object的所寫(xiě),而CLOB是指大字符對(duì)象也就是英文Character Large Object的所寫(xiě)。其中BLOB是用來(lái)存儲(chǔ)大量二進(jìn)制數(shù)據(jù)的;CLOB用來(lái)存儲(chǔ)大量文本數(shù)據(jù)。BLOB通常用來(lái)保存圖片、文件等二進(jìn)制類(lèi)型的數(shù)據(jù)。

二、使用mybatis操作blob

  1、表結(jié)構(gòu)如下:

create table BLOB_FIELD
(
  ID          VARCHAR2(64 BYTE)  not null,
  TAB_NAME       VARCHAR2(64 BYTE)  not null,
  TAB_PKID_VALUE    VARCHAR2(64 BYTE)  not null,
  CLOB_COL_NAME    VARCHAR2(64 BYTE)  not null,
  CLOB_COL_VALUE    CLOB,
  constraint PK_BLOB_FIELD primary key (ID)
);

  2、實(shí)體代碼如下:

 package com.test.entity;
 import java.sql.Clob; 
 /**
  * 大字段 
  */
 public class BlobField { 
   private String tabName;// 表名
   private String tabPkidValue;// 主鍵值
   private String blobColName;// 列名
   private byte[] blobColValue;// 列值 clob類(lèi)型
   public String getTabName() {
     return tabName;
   }
   public void setTabName(String tabName) {
     this.tabName = tabName;
   }
   public String getTabPkidValue() {
     return tabPkidValue;
   }
   public void setTabPkidValue(String tabPkidValue) {
     this.tabPkidValue = tabPkidValue;
   }
   public String getBlobColName() {
     return blobColName;
   }
   public void setBlobColName(String blobColName) {
     this.blobColName = blobColName;
   }
   public byte[] getBlobColValue() {
     return blobColValue;
   }
   public void setBlobColValue(byte[] blobColValue) {
     this.blobColValue = blobColValue;
   }
 }

  3、mybatis sql代碼如下:

 ?xml version="." encoding="UTF-" ?>
 !DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper .//EN" "http://mybatis.org/dtd/mybatis--mapper.dtd">
 mapper namespace="com.test.dao.BlobFieldDao">
   sql id="blobFieldColumns">
     a.ID AS id,
     a.TAB_NAME AS tabName,
     a.TAB_PKID_VALUE AS tabPkidValue,
     a.BLOB_COL_NAME AS blobColName,
     a.BLOB_COL_VALUE AS blobColValue
   /sql>
   sql id="blobFieldJoins">
   /sql>
   select id="get" resultType="blobField">
     SELECT
     include refid="blobFieldColumns" />
     FROM BLOB_FIELD a
     include refid="blobFieldJoins" />
     WHERE a.ID = #{id}
   /select>
   select id="findList" resultType="blobField">
     SELECT
     include refid="blobFieldColumns" />
     FROM BLOB_FIELD a
     include refid="blobFieldJoins" />
   /select> 
   insert id="insert">
     INSERT INTO BLOB_FIELD(
     ID ,
     TAB_NAME ,
     TAB_PKID_VALUE ,
     BLOB_COL_NAME ,
     BLOB_COL_VALUE
     ) VALUES (
     #{id},
     #{tabName},
     #{tabPkidValue},
     #{blobColName},
     #{blobColValue,jdbcType=BLOB}
     )
   /insert>
   update id="update">
     UPDATE BLOB_FIELD SET
     TAB_NAME = #{tabName},
     TAB_PKID_VALUE = #{tabPkidValue},
     BLOB_COL_NAME = #{blobColName},
     BLOB_COL_VALUE = #{blobColValue}
     WHERE ID = #{id}
   /update>
   delete id="delete">
     DELETE FROM BLOB_FIELD 
     WHERE ID = #{id}
   /delete>
 /mapper>

  3、controller代碼如下:

  a、保存BLOB字段代碼

/**
    * 附件上傳
    * 
    * @param testId
    *      主表Id
    * @param request
    * @return
    * @throws UnsupportedEncodingException
    */
   @RequiresPermissions("exc:exceptioninfo:feedback")
   @RequestMapping(value = "attachment", method = RequestMethod.POST)
   @ResponseBody
   public MapString, Object> uploadAttachment(@RequestParam(value = "testId", required = true) String testId, 
 
 HttpServletRequest request)
       throws UnsupportedEncodingException {
     MapString, Object> result = new HashMapString, Object>();
 
     MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
     // 獲得文件
     MultipartFile multipartFile = multipartRequest.getFile("Filedata");// 與前端設(shè)置的fileDataName屬性值一致
     String filename = multipartFile.getOriginalFilename();// 文件名稱(chēng)
     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字段

 /**
    * 下載附件
    * 
    * @param attachmentId
    * @return
    */
   @RequiresPermissions("exc:exceptioninfo:view")
   @RequestMapping(value = "download", method = RequestMethod.GET)
   public void download(@RequestParam(value = "attachmentId", required = true) String attachmentId,
       @RequestParam(value = "attachmentName", required = true) String attachmentName, HttpServletRequest 
 request, HttpServletResponse response) {
     ServletOutputStream out = null;
     try {
       response.reset();
       String userAgent = request.getHeader("User-Agent");
       byte[] bytes = userAgent.contains("MSIE") ? attachmentName.getBytes() : attachmentName.getBytes("UTF-
 "); // fileName.getBytes("UTF-")處理safari的亂碼問(wèn)題
       String fileName = new String(bytes, "ISO--");
       // 設(shè)置輸出的格式
       response.setContentType("multipart/form-data");
       response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(attachmentName, 
 "UTF-"));
       BlobField blobField = this.blobFieldService.get(attachmentId);
       //獲取blob字段
       byte[] contents = blobField.getBlobColValue();
       out = response.getOutputStream();
       //寫(xiě)到輸出流
       out.write(contents);
       out.flush();
     } catch (IOException e) {
       e.printStackTrace();
     }
   }        

  本例子將文件上傳并保存到BLOB類(lèi)型字段字段,下載的時(shí)候讀取BLOB字段,并寫(xiě)入成輸出流。

以上就是本文的全部敘述,希望對(duì)大家有所幫助。

您可能感興趣的文章:
  • SpringBoot Mybatis Plus公共字段自動(dòng)填充功能
  • Mybatis動(dòng)態(tài)調(diào)用表名和字段名的解決方法
  • MyBatis學(xué)習(xí)教程(四)-如何快速解決字段名與實(shí)體類(lèi)屬性名不相同的沖突問(wèn)題
  • MyBatis獲取插入記錄的自增長(zhǎng)字段值(ID)
  • MyBatis入門(mén)之增刪改查+數(shù)據(jù)庫(kù)字段和實(shí)體字段不一致問(wèn)題處理方法
  • mybatis自動(dòng)填充時(shí)間字段示例代碼

標(biāo)簽:固原 甘肅 武漢 承德 青島 周口 和田 開(kāi)封

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《深入淺析mybatis oracle BLOB類(lèi)型字段保存與讀取》,本文關(guān)鍵詞  深入,淺析,mybatis,oracle,BLOB,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《深入淺析mybatis oracle BLOB類(lèi)型字段保存與讀取》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于深入淺析mybatis oracle BLOB類(lèi)型字段保存與讀取的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 美女张开双腿让男人捅| 好色先生污| 日本一区二区三区不卡在线视频| 成本人片在线观看三三网站| 国产成人综合久久精品亚洲| 国产三级精品视频| 超大尺度床戏娇喘视频| 特级丰满少妇一级AAAA爱毛片 | 韩国理伦片在线观看手机版| 亚洲女教师护士高潮毛茸茸| 国产人妻熟女ⅩXXX网站小| 日本调教无遮挡免费视频| 24小时日本高清在线直播| jlzz日本人年轻护士出水| 7777午夜AV在线观看| KTV一边做爰一边吃奶| 天天色色网| 在线成人黄瓜视频网站| 继夫你好大肉伦小说阅读| 国产毛片久久久久久久精品软件| 痴女强制勃起榨精在线观看| 欧美高清hd视频免费播放| 2021亚洲欧洲天堂综合区| 我和公乱韩国电影| 国产精品久久久久久久久久红综合| 一级毛片美女免费| 双性白浊抵蹂躏bl| 古代乱亲h女秽乱常| h文细致初高中| 水野朝阳在线| 国产国拍亚洲精品永久不卡| 欧美人獸交了配XXOO| 双性浪货嗯啊趴下粗口hnp| 黄动漫视频| 色欲AV嫩草网站国产精品一区 | 日本婬乱一级毛片无码约会炮| 色噜噜在线视频| 看真人毛片A片水真多| 91精品国产亚洲Av高清裘花| 亚洲黄色免费网址| 校花在校长办公室被强|