Java实现MySQL图片存取操作
2024-08-28 16:07:28
转载自:http://blog.csdn.net/thc1987/article/details/3972201
存入操作
- /*
- ---------------表结构------------
- 表名:student2
- +--------+-------------+------+-----+---------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +--------+-------------+------+-----+---------+-------+
- | id | int(4) | NO | PRI | NULL | |
- | name | varchar(20) | YES | | NULL | |
- | stupic | blob | YES | | NULL | |
- +--------+-------------+------+-----+---------+-------+
- */
- package com.ibm.jdbc;
- import java.io.*;
- import java.sql.*;
- public class StoreBLOB {
- public static void main(String[] args) {
- //连接MySQl数据库
- Connection con=DBManager.getConnection();
- PreparedStatement ps=null;
- InputStream in=null;
- try {
- //从本地硬盘读取一张读片
- in=new FileInputStream("d:/111.jpg");
- ps=con.prepareStatement("insert into student2 values(?,?,?)");
- ps.setInt(1,2);
- ps.setString(2, "Tom");
- ps.setBinaryStream(3, in, in.available());
- ps.executeUpdate();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- finally
- {
- try {
- //关闭流
- if(in!=null) in.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //关闭相关连接
- DBManager.close(ps, con);
- }
- }
- }
取出操作
- package com.ibm.jdbc;
- import java.sql.*;
- import java.io.*;
- public class GetBLOB {
- public static void main(String[] args) {
- Connection con=DBManager.getConnection();
- Statement st=null;
- ResultSet rs=null;
- InputStream in=null;
- OutputStream out=null;
- try {
- st=con.createStatement();
- rs=st.executeQuery("select stupic from student2 where id=2");
- rs.next(); //将光标指向第一行
- //从rs中读取stupic放进InputStream对象中
- in=rs.getBinaryStream("stupic");
- //申明byte数组,用来存放图片流
- byte[] b=new byte[40000];
- in.read(b); //从InputStream对象中读取数据放进byte数组中
- //实例化OutputStream对象,在D盘创建一个图片文件
- out=new FileOutputStream("d:/222.jpg");
- //将文件输出,内容则为byte数组里面的数据
- out.write(b);
- out.flush();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- finally
- {
- try {
- if(in!=null)
- in.close();
- if(out!=null)
- out.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- DBManager.close(rs, st, con);//关闭相关连接
- }
- }
- }
最新文章
- php中include()和require()的区别
- mongoDB01 介绍
- Jmeter_初步认识随笔
- poll实现
- [Irving]SQL去重复-DISTINCT用法
- 工作流activiti-03数据查询(流程定义 流程实例 代办任务) 以及个人小练习
- Delphi与字符编码(实战篇)(MultiByteToWideChar会返回转换后的宽字符串长度)
- As3.0 Interface 与类的使用
- 最简单的ajax调用webservice
- webBrowser兼容
- CUDA编程模型——组织并行线程2 (1D grid 1D block)
- mac 安装pip
- [Ubuntu] Git可视化比较工具 P4Merge 的安装/配置及使用
- python_flask 注册,登陆,退出思路 ---纯个人观点
- inet_pton和inet_ntop inet_ntoa
- MYSQL查询优化:Limit
- Spark记录-本地Spark读取Hive数据简单例子
- websocket与canvas[转]
- C# List的深复制(转)
- Go testing 库 testing.T 和 testing.B 简介