转载自:http://blog.csdn.net/thc1987/article/details/3972201

存入操作

  1. /*
  2. ---------------表结构------------
  3. 表名:student2
  4. +--------+-------------+------+-----+---------+-------+
  5. | Field  | Type        | Null | Key | Default | Extra |
  6. +--------+-------------+------+-----+---------+-------+
  7. | id     | int(4)      | NO   | PRI | NULL    |       |
  8. | name   | varchar(20) | YES  |     | NULL    |       |
  9. | stupic | blob        | YES  |     | NULL    |       |
  10. +--------+-------------+------+-----+---------+-------+
  11. */
  12. package com.ibm.jdbc;
  13. import java.io.*;
  14. import java.sql.*;
  15. public class StoreBLOB {
  16. public static void main(String[] args) {
  17. //连接MySQl数据库
  18. Connection con=DBManager.getConnection();
  19. PreparedStatement ps=null;
  20. InputStream in=null;
  21. try {
  22. //从本地硬盘读取一张读片
  23. in=new FileInputStream("d:/111.jpg");
  24. ps=con.prepareStatement("insert into student2 values(?,?,?)");
  25. ps.setInt(1,2);
  26. ps.setString(2, "Tom");
  27. ps.setBinaryStream(3, in, in.available());
  28. ps.executeUpdate();
  29. } catch (IOException e) {
  30. // TODO Auto-generated catch block
  31. e.printStackTrace();
  32. }catch (SQLException e) {
  33. // TODO Auto-generated catch block
  34. e.printStackTrace();
  35. }
  36. finally
  37. {
  38. try {
  39. //关闭流
  40. if(in!=null) in.close();
  41. } catch (IOException e) {
  42. // TODO Auto-generated catch block
  43. e.printStackTrace();
  44. }
  45. //关闭相关连接
  46. DBManager.close(ps, con);
  47. }
  48. }
  49. }

取出操作

    1. package com.ibm.jdbc;
    2. import java.sql.*;
    3. import java.io.*;
    4. public class GetBLOB {
    5. public static void main(String[] args) {
    6. Connection con=DBManager.getConnection();
    7. Statement st=null;
    8. ResultSet rs=null;
    9. InputStream in=null;
    10. OutputStream out=null;
    11. try {
    12. st=con.createStatement();
    13. rs=st.executeQuery("select stupic from student2 where id=2");
    14. rs.next();  //将光标指向第一行
    15. //从rs中读取stupic放进InputStream对象中
    16. in=rs.getBinaryStream("stupic");
    17. //申明byte数组,用来存放图片流
    18. byte[] b=new byte[40000];
    19. in.read(b); //从InputStream对象中读取数据放进byte数组中
    20. //实例化OutputStream对象,在D盘创建一个图片文件
    21. out=new FileOutputStream("d:/222.jpg");
    22. //将文件输出,内容则为byte数组里面的数据
    23. out.write(b);
    24. out.flush();
    25. } catch (SQLException e) {
    26. // TODO Auto-generated catch block
    27. e.printStackTrace();
    28. }
    29. catch (IOException e) {
    30. // TODO Auto-generated catch block
    31. e.printStackTrace();
    32. }
    33. finally
    34. {
    35. try {
    36. if(in!=null)
    37. in.close();
    38. if(out!=null)
    39. out.close();
    40. } catch (IOException e) {
    41. // TODO Auto-generated catch block
    42. e.printStackTrace();
    43. }
    44. DBManager.close(rs, st, con);//关闭相关连接
    45. }
    46. }
    47. }

最新文章

  1. php中include()和require()的区别
  2. mongoDB01 介绍
  3. Jmeter_初步认识随笔
  4. poll实现
  5. [Irving]SQL去重复-DISTINCT用法
  6. 工作流activiti-03数据查询(流程定义 流程实例 代办任务) 以及个人小练习
  7. Delphi与字符编码(实战篇)(MultiByteToWideChar会返回转换后的宽字符串长度)
  8. As3.0 Interface 与类的使用
  9. 最简单的ajax调用webservice
  10. webBrowser兼容
  11. CUDA编程模型——组织并行线程2 (1D grid 1D block)
  12. mac 安装pip
  13. [Ubuntu] Git可视化比较工具 P4Merge 的安装/配置及使用
  14. python_flask 注册,登陆,退出思路 ---纯个人观点
  15. inet_pton和inet_ntop inet_ntoa
  16. MYSQL查询优化:Limit
  17. Spark记录-本地Spark读取Hive数据简单例子
  18. websocket与canvas[转]
  19. C# List的深复制(转)
  20. Go testing 库 testing.T 和 testing.B 简介

热门文章

  1. 最短路-Floyd
  2. HDU 1097.A hard puzzle-快速幂/取模
  3. 洛谷P3975 跳房子 [DP,单调队列优化,二分答案]
  4. 洛谷——P2708 硬币翻转
  5. RabbitMQ (十四) 普通集群
  6. Xamarin XAML语言教程模板视图TemplatedView(二)
  7. 【动态规划】mr354-坐车看球
  8. 查询续与ajax
  9. 数据库之mysql的基本操作
  10. Problem D: 判断上否上三角矩阵