20160408javaweb之JDBC 大二进制和大文件存取
一、大文本存取:
我们有一本约10M的小说,现存入数据库:
代码如下:以junit测试的方式给出
package com.dzq.lob;import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.io.Writer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet;import org.junit.Test;import com.dzq.util.JDBCUtils;public class TextDemo1 { @Test public void addText(){Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;String sql="insert into textdemo values (null,?,?)";try{conn=JDBCUtils.getConn();ps=conn.prepareStatement(sql);ps.setString(1, "钢铁是怎样炼成的.txt");File file=new File("1.txt");ps.setCharacterStream(2, new FileReader(file),(int)file.length());ps.executeUpdate();}catch(Exception e){e.printStackTrace();}finally{JDBCUtils.close(rs, ps, conn);} }@Test public void findText(){Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;String sql="select * from textdemo where id=?";try{conn=JDBCUtils.getConn();ps=conn.prepareStatement(sql);ps.setInt(1, 5);rs=ps.executeQuery();while (rs.next()) {String filename=rs.getString("name");Reader reader=rs.getCharacterStream("content");Writer writer=new FileWriter(filename);char []cs=new char[1024];int i=0;while ((i=reader.read(cs))!=-1) {writer.write(cs,0,i);}reader.close();writer.close();}}catch(Exception e){e.printStackTrace();}finally{JDBCUtils.close(rs, ps, conn);} } }
二、大二进制存取:
我们有一个mp3文件,现存入数据库
代码如下:
package com.dzq.lob;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet;import org.junit.Test;import com.dzq.util.JDBCUtils;public class BlobDemo1 {@Testpublic void addBlob(){Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;String sql="insert into blobdemo values (null,?,?)";try{conn=JDBCUtils.getConn();ps=conn.prepareStatement(sql);ps.setString(1, "洛天依.mp3");File file=new File("1.mp3");ps.setBinaryStream(2, new FileInputStream(file),(int)file.length());ps.executeUpdate();}catch(Exception e){e.printStackTrace();}finally{JDBCUtils.close(rs, ps, conn);}}@Testpublic void findBlob(){Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;String sql="select * from blobdemo";try{conn=JDBCUtils.getConn();ps=conn.prepareStatement(sql);rs=ps.executeQuery();while (rs.next()) {String filename=rs.getString("name");InputStream in=rs.getBinaryStream("content");OutputStream out=new FileOutputStream(filename);byte []bs=new byte[1024];int i=0;while ((i=in.read(bs))!=-1) {out.write(bs,0,i);}in.close();out.close();}}catch(Exception e){e.printStackTrace();}finally{JDBCUtils.close(rs, ps, conn);}} }
三、其中出现的问题见链接:
使劲点我啊
转载于:https://www.cnblogs.com/xiaoduc-org/p/5369319.html
20160408javaweb之JDBC 大二进制和大文件存取相关推荐
- 数据库相关(JDBC,存储过程,以及大文本数据处理,mvc设计模式)
目录 1.jdbc总结(模板.八股文): 2.CallableStatement:调用 存储过程.存储函数 3.1JDBC调用存储过程的步骤: 3.2调存储函数: 3.处理CLOB/BLOB类型 4. ...
- 一篇文章带你了解大数据生态圈---大数据组件图谱
小编一篇文章带你了解大数据生态圈-大数据组件图谱 转载地址:http://blog.csdn.net/u010039929/article/details/70157376 文章目录 小编一篇文章带你 ...
- 西工大数据库实验大作业 火锅店菜品管理系统
西工大数据库实验大作业 火锅店菜品管理系统 文章目录 西工大数据库实验大作业 火锅店菜品管理系统 前言: 一.大作业简单的需求分析: 二.数据流图: 三.数据字典: 四.E-R图: 五.关系模式设计: ...
- 计算机进制各用什么字母表示方法,16进制字母大还是数字大 16进制中的字母代表什么...
F字母使用大写这六个字母来分别表示16进制多位数字母需要换算,E,范围从00000000-111111表示0到2一位16进制数用二进制表示是xxxx最多只表示到15即对应16进制的F.作业,但这种混合 ...
- 新手入门大数据,大数据的入门!!!认识大数据
大数据介绍 大数据的由来 大数据的应用领域 大数据方面核心技术有哪些? 一.数据采集与预处理 Flume NG NDC Logstash Sqoop 流式计算 Zookeeper 二.数据存储 HBa ...
- linux系统 大分区,linux大硬盘怎么分区
随着硬盘的增大,linux系统对大硬盘,大分区的支持也有了相应的设置.很多刚刚学习的小白还是不太懂硬盘的挂载.为此学习啦小编为大家整理推荐了相关的知识,希望大家喜欢. linux大硬盘分区的详细方法 ...
- 程序员必知8大排序3大查找(三)
前两篇 <程序员必知8大排序3大查找(一)> <程序员必知8大排序3大查找(二)> 三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表(以后谈) 一.顺序查找的基 ...
- 拿transformer做E2E全景分割,这个通用框架霸榜挑战赛,南大、港大联合提出
视学算法报道 机器之心编辑部 本文中,来自南大.港大.英伟达等机构的研究者提出了一个使用 transformer 进行端到端全景分割的通用框架,不仅为语义分割与实例分割提供了统一的 mask 预测工作 ...
- 国内高校简称撞车史:南大、西大、东大都在争,唯独北大没人抢
文章 | 募格学术 高校因简称经常发生争议,今天小编就来盘点一下.高校简称背后的"爱恨情仇",都可以拍一出大型连续剧了. 你知道你们学校的简称是啥嘛? 用官方措辞解释,高校简称 ...
最新文章
- java.lang.ClasNotFoundException:Didnt findclass on path:DexPathList[[zip file
- django 打开的html css_Django分页完整示例
- Taro button点击切换选中状态
- python for else statement test
- S5PV210体系结构与接口07:中断系统编程
- 女生适合做程序员吗?
- AWS Fargate告诉你:什么是容器即服务
- 上周热点回顾(11.11-11.17)
- 赵鹏的《大师之路》教程
- 哔哩哔哩没有html5播放,解决哔哩哔哩网页版视频空白不能播放的方法
- windows操作快捷键
- 数据库操作(DML,DCL,DQL)
- 绩效管理实务与管理效率提升-王晓耕老师
- rbd feature
- 华硕笔记本FH5900VQ 如何利用Winflash更新BIOS
- 特种浓缩分离:倒极电渗析技术工作原理
- 计算机安装win10配置,win11发布了,那么安装win11配置要求是什么?win11配置要求详解...
- 数据分析之Quick bi
- 基于jQuery的TreeGrid组件
- YOLOV4垃圾检测召回率提升
热门文章
- html 父模板,详解vue父子模版嵌套案例
- Spring Boot+Vaadin 14项目初始化
- ipad服务器未响应怎么办,ipad平板连接Win7系统电脑半天没反应如何解决
- java jdbc标签jsp_JDBC结合JSP使用(1)
- 贝叶斯数据分析_科研进阶项目 | 剑桥大学 | 心理学、社会学、生物医学:统计数据分析(6.13开课)...
- 名片夹android布局代码,Android自定义布局实现仿qq侧滑部分代码
- c mysql 并发处理_mysql队列中实现并发读的实现方法解析
- jquery清除所有cookie
- 大学计算机学情分析,大学生学情分析
- android 调用 asp.net web api,从 .NET 客户端调用 Web API (C#)