在将文件转成的二进制/base64形式的的会报数据太长,那么这个时候就要先插入一个空的blob值(这里是oracle),代码如下
 public class fillUtil{Connection connDoc = null;PreparedStatement stmtDoc = null;ResultSet res = null;public int saveFill(InputStream is) {byte[] value = null;//利用Driver对象Driver driver = new OracleDriver();DriverManager.deregisterDriver(driver);Properties pro = new Properties();pro.put("user", "root");pro.put("password", "root");connDoc = driver.connect("jdbc:oracle:thin:@localhost:1521:XE", pro);}try {connDoc.setAutoCommit(false); //关闭自动提交String sql3 = "insert into files (code,content values(?,?)";//插入语句stmtDoc = connDoc.prepareStatement(sql3);stmtDoc.setString(1, 1001);stmtDoc.setBlob(2, oracle.sql.BLOB.getEmptyBLOB());stmtDoc.executeUpdate();String sql4 = "select content from files where code = ?";stmtDoc = connDoc.prepareStatement(sql4);stmtDoc.setString(1, requestId);res = stmtDoc.executeQuery();res.next();BLOB contentBlob = (BLOB) res.getBlob(1);   //得到该空的blobOutputStream outputstream = contentBlob.getBinaryOutputStream();outputstream.write(value);outputstream.flush();outputstream.close();connDoc.commit();}catch (Exception e) {try {if (connDoc != null)connDoc.rollback();} catch (SQLException e1) {e1.printStackTrace();}e.printStackTrace();return 0;} finally {try {res.close();stmtDoc.close();connDoc.close();} catch (SQLException e) {e.printStackTrace();}}//转换成二进制public static byte[] inputStreamToBytes(InputStream inputStream) throws IOException {ByteArrayOutputStream baos = new ByteArrayOutputStream();byte[] buff = new byte[4096];int index = 0;while ((index = inputStream.read(buff, 0, 4096)) > 0) {baos.write(buff, 0, index);}return baos.toByteArray();}//转换Base64public static String byte2Base64StringFun(byte[] b) {String str = "";try {BASE64Encoder encoder = new BASE64Encoder();str = Util.null2String(encoder.encode(b)).replaceAll("[\\s*\t\n\r]", "");} catch (Exception e) {log.writeLog("byte[]转base64报错,错误信息---->" + e.toString());}return str;}
}

JDBC上传文件存入BLOB字段相关推荐

  1. struts2解决动态多文件上传的问题(上传文件与数据库字段一一对应)(转)

    struts2多文件上传我想只要会用struts2的朋友都不会陌生,但是怎么在action中根据用户上传的文 件把文件路径写到数据库中对应的字段上呢?ps:我的意思是这样,页面上有固定的5个上传文件的 ...

  2. java 文件上传至oracle blob字段 实现

    2019独角兽企业重金招聘Python工程师标准>>> 指定文件夹下的所有文件上传至oracle的blob字段,java实现 package com.huth;import java ...

  3. servlet上传文件接收工具

    2019独角兽企业重金招聘Python工程师标准>>> utf-8编号,如果是其他编码的请自行替换里面的编码 import java.io.File; import java.uti ...

  4. 文件上传存至oracle,fileupload上传文件存储到oracle Blob字段中

    从网上查了许多资料,攒了个功能,暂且记下来,呵呵.需要apache的fileupload组件和io组件. // 建立一个新的Upload对象 DiskFileUpload upload = new D ...

  5. docx文件上传java_java上传文件通过mybatis存储到数据库的blob格式中.docx

    java上传文件通过mybatis存储到数据库的blob格式中.docx 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 上传文件通过 myb ...

  6. 文件上传表单 上传文件的细节 文件上传下载和数据库结合

    1 文件上传表单    1)上传文件的本质是文本复制的过程    2)技术层面,在Java中一定会用到IO操作,主要以二进制方式读写    3)传统方式下,对于上传文件字段不同的浏览器有着不同的解析方 ...

  7. 用服务器传输xml文件格式,XML技术上传文件

    XML技术上传文件 作者:XML技术上传文件 来源: 日期:2002-8-8 概述 本文讲解了一个使用XML技术上传文件的例子,使用该方法没有传统方法中的种种限制. 这个例子讲述了如何使用MSXML3 ...

  8. 利用mysql实现上传和下载_文件上传表单 上传文件的细节 文件上传下载和数据库结合...

    1 文件上传表单 1)上传文件的本质是文本复制的过程 2)技术层面,在Java中一定会用到IO操作,主要以二进制方式读写 3)传统方式下,对于上传文件字段不同的浏览器有着不同的解析方式,例如: IE6 ...

  9. Vue封装一个简单轻量的上传文件组件

    一.之前遇到的一些问题 项目中多出有上传文件的需求,使用现有的UI框架实现的过程中,不知道什么原因,总会有一些莫名其妙的bug.比如用某上传组件,明明注明(:multiple="false& ...

  10. dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传

    作者:Pseudo 转发链接:https://segmentfault.com/a/1190000023434864 凡是要知其然知其所以然 文件上传相信很多朋友都有遇到过,那或许你也遇到过当上传大文 ...

最新文章

  1. Console.ReadLine(); 获取用户输入内容
  2. 如何解决弹出窗口固定大小及内容的问题
  3. 实时音视频流媒体传输的思考和实践
  4. mybatis配置id自增mysql_mybatis配置oracle的主键自增长
  5. .NET Core 3.0 可回收程序集加载上下文
  6. Js中数组Array的用法
  7. arcgis投影数据计算度分秒
  8. 【LeetCode笔记】148. 排序链表(Java、归并排序、快慢指针、双重递归)
  9. laravel route函数 404_laravel生成及获取不同类型的URL地址总结
  10. 霍夫直线检测python_python+opencv实现霍夫变换检测直线
  11. 6个基本screen命令
  12. Android Material Design调色板
  13. 三调数据库标注插件v1.3
  14. Django教程(为什么选择Django框架)
  15. 宋红康jvm学习p1-100
  16. 麦吉尔大学 计算机科学和阿尔伯特,加拿大低龄留学-阿尔伯特学院-Albert College...
  17. 脚踏实地小组的实验一
  18. php网站 域名授权 怎么破,使用php进行域名授权代码 - 小俊学习网
  19. java最强的mtk平台_手机QQ塞班S60/JAVA/MTK平台系统升级
  20. 书论49 蔡襄《论书》

热门文章

  1. Myeclipse10如何进行代码提示和自动补全
  2. java中堆和栈的区别_java中堆和栈的区别
  3. hurst指数matlab代码_Matlab 简介
  4. python列表语法_python学习之列表语法
  5. python的if和else、for、while语法_Python中的if、while、for 语法及实例
  6. android快速查询,android常用adb快捷命令一览表
  7. c# 收取邮件 解析_请教C#读取POP3邮件后,怎么获取正文的内容
  8. opengl 光线追踪_Vulkan的视频编解码支持将于2020年上半年加入,光线追踪也在路上...
  9. ce 修改 java游戏_CE6.4.3修改器加强版 CE加强版 可过NP的和众多游戏的CE修改器 - 下载 - 搜珍网...
  10. php上证指数抽奖代码,[高手指点] 美团网的抽奖是什么原理?