一、得到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存取的一个简单例子的更多相关文章

  1. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  2. (转)Java中使用正则表达式的一个简单例子及常用正则分享

    转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...

  3. C语言多线程的一个简单例子

    多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...

  4. quartz---的一个简单例子

    quartz---的一个简单例子 首先建立一个maven项目.jar工程即可.(提示:我前面有如何建立一个maven工程的总结以及maven环境的配置.) 1.建立好后点击到app中运行,--> ...

  5. 用socket.io实现websocket的一个简单例子

    socket.io 是基于 webSocket 构建的跨浏览器的实时应用. 逛博客发现几个比较好的 一.用socket.io实现websocket的一个简单例子 http://biyeah.iteye ...

  6. 词法分析程序 LEX和VC6整合使用的一个简单例子

    词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if ...

  7. spring集合类型的setter注入的一个简单例子

    在项目中我们有时候会为集合类型设定一些默认的值,使用spring后,我们可以通过配置文件的配置,用setter方式为对象的集合属性提供一些默认值,下面就是一个简单的例子. 首先我们创建了一个名为Col ...

  8. netsh interface portproxy的一个简单例子

    netsh interface portproxy的微软帮助文档地址: https://technet.microsoft.com/zh-cn/library/cc776297(WS.10).aspx ...

  9. js 排列 组合 的一个简单例子

    最近工作项目需要用到js排列组合,于是就写了一个简单的demo. 前几天在网上找到一个写全排列A(n,n)的code感觉还可以,于是贴出来了, 排列的实现方式: 全排列主要用到的是递归和数组的插入 比 ...

随机推荐

  1. php 向asmx发送请求 || php 发送xml请求, 以及处理返回的xml结果

    var $live_url = 'https://processing.ukash.com/RPPGateway/process.asmx'; $source = array( 'SecurityTo ...

  2. <meta http-equiv="refresh" content="0; url=">是什么意思?

    页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里一般也用在实时性很强的应用中, ...

  3. [转] Making GTFS query more convenient

    url:http://ontrakinfo.wordpress.com/2012/10/29/making-gtfs-query-more-convenient/ 这简直说出了我的心声. I have ...

  4. android开发--(SimpleAdapter)运用

    SimpleAdapter的参数说明  第一个参数 表示访问整个android应用程序接口,基本上所有的组件都需要  第二个参数表示生成一个Map(String ,Object)列表选项    第三个 ...

  5. python计算机视觉——黑板客老师课程学习

    机器学习的一个应用方向,是如何让机器去理解图像.包括对图像里物体的识别,跟踪和测量. 能做什么——无人驾驶汽车.人脸识别.车牌识别手势识别(游戏方向) PIL静态的库 OpenCV 动态的库 impo ...

  6. [python] python 中的" "和' '都是完全转义

    dict = {"a" : "apple", "b" : "banana", "g" : " ...

  7. 【MVC】 异常处理

    [MVC] 异常处理 一 . 自定义 HandleErrorAttribute public class ExceptionLogAttribute : HandleErrorAttribute { ...

  8. 把表里的数据转换为insert 语句

    当表里面有数据时,怎么把表里的数据转换为insert 语句 (从别人那里看来的用SQLServer 2008 R2测试可用) CREATE PROC spGenInsertSQL @TableName ...

  9. hibernate学习(设计多对多 关系 映射)

    // package org.crazy.app.domain; import java.util.HashSet; import java.util.Set; import javax.persis ...

  10. POJ 1113 - Wall 凸包

    此题为凸包问题模板题,题目中所给点均为整点,考虑到数据范围问题求norm()时先转换成double了,把norm()那句改成<vector>压栈即可求得凸包. 初次提交被坑得很惨,在GDB ...