import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class FileDao {/*** 上传pdf文件* @param file* @param name* @throws SQLException* @throws ClassNotFoundException*/public void upload(File file,String name,Integer id) throws SQLException, ClassNotFoundException {Files f =new Files(id,getBytesFromFile(file),name);add(f);}/*** 下载pdf文件* @param id* @param filepath*/public void download(Integer id,String filepath) throws SQLException, ClassNotFoundException {BytestoPdffile(getfilesById(id).getFileDate(),filepath);}/*** 将二进制流数据存入数据库* @param file* @throws ClassNotFoundException* @throws SQLException*/public void add(Files file) throws ClassNotFoundException, SQLException {Connection conn = JdbcUtil.getConnection();String sql = "update patent set file_date=?,file_name=? where id=?";PreparedStatement ps = conn.prepareStatement(sql);ps.setBytes(1,file.getFileDate());ps.setString(2,file.getFileName());ps.setInt(3,file.getId());ps.executeUpdate();JdbcUtil.close(ps, conn);}/*** 根据id获得文件二进制数据流* @param id* @return* @throws ClassNotFoundException* @throws SQLException*/public Files getfilesById(Integer id) throws ClassNotFoundException, SQLException {Connection conn = JdbcUtil.getConnection();String sql = "select id,file_date,file_name from filetest where id =?";PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1,id);ResultSet rs = ps.executeQuery();Files file=null;while(rs.next()){file=new Files(rs.getInt(1), rs.getBytes(2), rs.getString(3));}JdbcUtil.close(ps, conn);return file;}/*** 处理文件输出二进制数据流* @param file* @return*/public byte[] getBytesFromFile(File file){if (file == null){return null;}try {FileInputStream stream = new FileInputStream(file);ByteArrayOutputStream out = new ByteArrayOutputStream(1000);byte[] b = new byte[1000];int n;while ((n = stream.read(b)) != -1)out.write(b, 0, n);stream.close();out.close();return out.toByteArray();} catch (IOException e){}return null;}/*** 将二进制数据流转为pdf文件* param filepath 保存路径* @param bytes* @param filepath*/public void BytestoPdffile(byte[] bytes,String filepath){BufferedInputStream bis = null;FileOutputStream fos = null;BufferedOutputStream bos = null;try{ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(bytes);bis=new BufferedInputStream(byteArrayInputStream);File file=new File(filepath);File path=file.getParentFile();if(!path.exists()){path.mkdirs();}fos=new FileOutputStream(file);bos=new BufferedOutputStream(fos);byte[] buffer=new byte[1024];int length=bis.read(buffer);while(length!=-1){bos.write(buffer,0,length);length=bis.read(buffer);}bos.flush();}catch(Exception e){e.printStackTrace();}finally {try{bis.close();bos.close();fos.close();}catch (IOException e){e.printStackTrace();}}}
}

MySql数据库存储pdf文件相关推荐

  1. MySQL—05—MySQL如何处理SQL语句;MySQL数据库存储引擎介绍;

    一. MySQL 中的执行计划 1 MySQL 执行计划 在 MySQL 中可以通过 explain 关键字模拟优化器,执行 SQL 语句,从而知道 MySQL 是 如何处理 SQL 语句的. 2 M ...

  2. 以下用于数据存储领域的python第三方库是-Python3爬虫学习之MySQL数据库存储爬取的信息详解...

    本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息.分享给大家供大家参考,具体如下: 数据库存储爬取的信息(MySQL) 爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在 ...

  3. ubuntu mysql数据储存在哪里_如何更改在Ubuntu下的MySQL数据库存储位置?

    在默认的数据库存储位置下就会有个文件夹mysqldb.要操作数据库首先得停止数据库进程: $sudo /etc/init.d/mysql stop 本文以转移到/home/mysql这个位置为例,下面 ...

  4. 【笔记11】uniapp点击复制;mysql数据库存储emoji表情;Java 二维码生成;uniapp引入自定义图标

    目录 前言 一.uniapp 实现点击复制某段文本 二.MySQL 数据库存储 emoji 表情 三.Layui 的富文本编辑器 四.谷歌 Java 二维码生成 (1) 引入 MAVEN 依赖 五.微 ...

  5. mysql 设置数据库路径_MySQL数据库之更改Mysql数据库存储位置的具体步骤

    本文主要向大家介绍了MySQL数据库之更改Mysql数据库存储位置的具体步骤 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 一.首先把mysql的服务先停掉. 二.更改MySQ ...

  6. atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js

    atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐)  vs   lang  ...

  7. 记一次mysql数据库转储sql文件到另外一台电脑运行失败的解决办法

    记一次mysql数据库转储sql文件到另外一台电脑运行失败的解决办法 将转储的sql文件中创建触发器相关的语句剪切复制到另外的一份文本,保存重新运行sql文件,成功后在把之前剪切的语句复制过来在运行一 ...

  8. 基于ssm的校园门户网站源码+开题报告+需求分析+mysql数据库+前端html文件

    下载地址:https://download.csdn.net/download/biyesheji250/28740242 项目介绍: 基于ssm的校园门户网站源码+开题报告+需求分析+mysql数据 ...

  9. mysql数据库导入sql文件Mysql导入导出.sql文件的方法

    mysql数据库导入sql文件:Mysql导入导出.sql文件的方法 mysql导入sql文件:Mysql导入导出.sql文件 步骤如下: 一.MYSQL的命令行模式的设置: 桌面->我的电脑- ...

最新文章

  1. StorSimple 简介
  2. oracle 语法分析表,Oracle 语句优化分析说明
  3. 统计学---数据的标准化
  4. sql网站路径php,如何在源码中找出sql语句的位置呢
  5. ACL 2021 | Glancing Transformer:惊鸿一瞥的并行生成模型
  6. 使用文本编辑器和jdk_JDK 14:记录,文本块等
  7. macos安装python3.6_在CentOS 7/Ubuntu 16.04/Debian 9/macOS上安装Python 3.6的方法
  8. 【转】 一定要让孩子知道的20个小故事
  9. 处理顶点——自动计算顶点缓冲中所有顶点的法线
  10. socksCap32+socks2http软件
  11. 极智开发 | UmiJS 快速上手
  12. 【学习笔记之MYSQL篇】实体联系图
  13. intel edison固件更新
  14. 虚拟吉他手合集 UJAM Instruments Virtual Guitarist Bundle WiN-MAC
  15. 力扣刷题 DAY_75 贪心
  16. 骨传导原理是什么?骨传导耳机对保护耳朵健康有帮助吗?
  17. Asp.Net 上传图片并生成高清晰缩略图
  18. MAC系统下安装homebrew(2020.04)
  19. Flink 1.10 SQL、HiveCatalog与事件时间整合示例
  20. 高斯拉普拉斯卷积核去除噪声

热门文章

  1. win7下运行linux命令,win7系统32位旗舰版iso运行linux shell脚本的操作办法
  2. Nginx服务器--Nginx服务器的使用笔记
  3. 运放稳定性连载11:电容性负载稳定性:RISO、高增益及 CF、噪声增益(2)
  4. 【库存控制技术】方法
  5. 最简单的图片加水印方法
  6. mac安装mongodb数据库
  7. 那些有趣的网站系列(十五)
  8. 网络安全:文件上传 + 一句话木马原理 + 菜刀的简单使用
  9. NLP学习笔记41-递归神经网络
  10. 关于携程多玩对接-订单对接