mysql Blob存取的一个简单例子
一、得到mysql的连接
这里封装成一个方法,方便后面使用。
public Connection getConnection() throws Exception{
String url = "jdbc:mysql://localhost:3306/dbfortest";
String user = "root";
String password = "root";
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
}
二、将数据存入数据库
/**
*
* @param file 需要传入数据库的文件
* @throws Exception
*/
public void save(File file) throws Exception{
Connection conn = getConnection();
String sql = "insert into tb_blob (name,myfile) values(?,?)";
PreparedStatement prest = conn.prepareStatement(sql);
String filename=file.getName();
prest.setString(1, filename);//根据文件名称来保存
FileInputStream fis = new FileInputStream(file);
prest.setBlob(2, fis,file.length());//第二个参数需要一个InputStream
prest.execute(); //执行
}
三、将数据取出,同时写入文件。
/**
*
* @param filename 列的值,同时是文件名
* @throws Exception
*/
public void getMp3(String filename) throws Exception{
Connection conn = getConnection();
String sql = "select * from tb_blob where name= ?";
PreparedStatement prest = conn.prepareStatement(sql);
prest.setString(1, filename);
ResultSet rs = prest.executeQuery();
while(rs.next()){
Blob bl = rs.getBlob("myfile");//数据保存在"myfile",这里则是取出这里保存的数据。
InputStream is = bl.getBinaryStream(); //查看blob,可以通过流的形式取出来。
BufferedInputStream buffis = new BufferedInputStream(is);
//保存到buffout,就工程目录下的filename的文件
BufferedOutputStream buffout = new BufferedOutputStream(new FileOutputStream(filename));
byte[] buf= new byte[1024];
int len = buffis.read(buf, 0, 1024);
while(len>0){
buffout.write(buf);
len=buffis.read(buf, 0, 1024);
}
buffout.flush();
buffout.close();
buffis.close();
}
}
mysql Blob存取的一个简单例子的更多相关文章
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
- (转)Java中使用正则表达式的一个简单例子及常用正则分享
转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...
- C语言多线程的一个简单例子
多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...
- quartz---的一个简单例子
quartz---的一个简单例子 首先建立一个maven项目.jar工程即可.(提示:我前面有如何建立一个maven工程的总结以及maven环境的配置.) 1.建立好后点击到app中运行,--> ...
- 用socket.io实现websocket的一个简单例子
socket.io 是基于 webSocket 构建的跨浏览器的实时应用. 逛博客发现几个比较好的 一.用socket.io实现websocket的一个简单例子 http://biyeah.iteye ...
- 词法分析程序 LEX和VC6整合使用的一个简单例子
词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if ...
- spring集合类型的setter注入的一个简单例子
在项目中我们有时候会为集合类型设定一些默认的值,使用spring后,我们可以通过配置文件的配置,用setter方式为对象的集合属性提供一些默认值,下面就是一个简单的例子. 首先我们创建了一个名为Col ...
- netsh interface portproxy的一个简单例子
netsh interface portproxy的微软帮助文档地址: https://technet.microsoft.com/zh-cn/library/cc776297(WS.10).aspx ...
- js 排列 组合 的一个简单例子
最近工作项目需要用到js排列组合,于是就写了一个简单的demo. 前几天在网上找到一个写全排列A(n,n)的code感觉还可以,于是贴出来了, 排列的实现方式: 全排列主要用到的是递归和数组的插入 比 ...
随机推荐
- 精妙SQL语句
asc 按升序排列desc 按降序排列 下列语句部分是Mssql语句,不可以在access中使用.SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据 ...
- AX 4.0 调用打印设定的功能
PrintJobSettings printJobSettings; PrintJobSettings printJobSettings2; Boolean ok; container packPri ...
- python函数,lambda表达式,三目运算,列表解析,递归
一.自定义函数 定义函数时,函数体不执行:只有在调用函数时,函数体才执行.函数的结构: 1. def 2. 函数名 3. 函数体 def func_name(): 函数体 4. 返回值 如果没有声明返 ...
- Analyze network packet files very carefully
As a professional forensic guy, you can not be too careful to anlyze the evidence. Especially when t ...
- Android开发--布局二
1.Andrid:控件布局(表格布局)TableLayout 有多少个TableRow对象就有多少行, 列数等于最多子控件的TableRow的列数 直接在TableLayout加控件,控件会占据一行 ...
- jquery源码学习之extend
jquery的extend方法现项目中经常使用,现在了解一下它的实现. 说起extend就要先了解一个jQuery的$.extend和$.fn.extend作用及区别 jQuery为开发插件提拱了两个 ...
- jquery源码学习之queue方法
队列模块的代码结构 静态方法jQuery下有queue,dequeue,_queueHooks这三种方法:静态方法不建议直接在外部调用: 实例方法.queue,.dequeue,.clearQueue ...
- TIJ读书笔记04-方法重载
TIJ读书笔记04-方法重载 为什么会有方法重载 方法签名 如何区分重载 关于基本类型的重载 为什么会有方法重载 OOP的编程方式就是让程序的逻辑更加接近现实世界的逻辑. 而在现实世界中,自然语言本身 ...
- zk源码环境搭建
zk不是使用maven管理的. 将zk的src下的代码导入eclipse,lib下的jar包导入工程. QuorumPeerMain类的main方法是入口,启动了zk的server,参数是conf文件 ...
- sqlserver表数据导出为insert into语句
<1>select 'insert into table_name (name,code) values ('''+name+''','''+code+''');' sql_str fr ...