转载自: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. }

Java实现MySQL图片存取操作的更多相关文章

  1. Java实现对Mysql的图片存取操作

    1.MySQL中的BLOB类型 Mysql中可以存储大文件数据,一般使用的BLOB对象.如图片,视频等等. BLOB是一个二进制大对象,可以容纳可变数量的数据.因为是二进制对象,所以与编码方式无关.有 ...

  2. Java连接MySQL数据库及操作

    Java操作MySQL数据库,需要驱动mysql-connector-java 来进行操作,去下载对应的jar包   一.导入需要的jar包 我用的是maven对包进行管理,在maven中添加如下内容 ...

  3. JAVA对MySQL数据库的操作

    一.导包: 使用JDBC连接MySQL数据库时,首先需要导入一个第三方的JAR包(点击下载),下载解压得到一个JAR包,并导入到JAVA项目中,如下图: 二.DBHelper类: 代码如下: impo ...

  4. 在Jena框架下基于MySQL数据库实现本体的存取操作

    在Jena框架下基于MySQL数据库实现本体的存取操作 转自:http://blog.csdn.net/jtz_mpp/article/details/6224311 最近在做一个基于本体的管理系统. ...

  5. sqlite3的图片的(二进制数据)存取操作

    sqlite3的图片的(二进制数据)存取操作   前言 上篇介绍了sqlite3的一些常用插入操作方法和注意事项,在实际项目中遇到了图片缓存的问题,由于服务器不是很稳定,且受到外界环境的干扰(例如断电 ...

  6. Java连接MySQL数据库及简单操作代码

    1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...

  7. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  8. 让Java和MySQL连接起来

    Java 连接 MySQL 需要驱动包,可以下载菜鸟教程提供的 jar 包:http://static.runoob.com/download/mysql-connector-java-5.1.39- ...

  9. java 连接 MySQL

    java 连接 MySQL 1.准备工作 需要下载的工具: MySQL:http://www.mysql.com/downloads/ MySQL的可视化工具SQLyog:https://www.we ...

随机推荐

  1. 将xml文件转为c#对像

    读取xml文件数据,通过序列化反序列化转为List<T>对象后,对对象进行操作.

  2. docker集群

    http://blog.csdn.net/zhaoguoguang/article/details/51161957

  3. Bzoj4016/洛谷P2993 [FJOI2014] 最短路径树问题(最短路径问题+长链剖分/点分治)

    题面 Bzoj 洛谷 题解 首先把最短路径树建出来(用\(Dijkstra\),没试过\(SPFA\)\(\leftarrow\)它死了),然后问题就变成了一个关于深度的问题,可以用长链剖分做,所以我 ...

  4. HZAU 1207 Candies(线段树区间查询 区间修改)

    [题目链接]http://acm.hzau.edu.cn/problem.php?id=1207 [题意]给你一个字符串,然后两种操作:1,将区间L,R更新为A或者B,2,询问区间L,R最长的连续的B ...

  5. shell脚本报错退出

    在shell脚本中,比如有以下的代码: cd /root/test88 rm -rf  backup 如果目录/root/test88不存在,脚本不会停止,依然会执行rm -rf backup这个命令 ...

  6. Sd - Hibernate

    Sd - Hibernate 附:http://blog.csdn.net/ta8210/article/details/1582162 数据库连接池实现原理 http://hi.baidu.com/ ...

  7. 洛谷P1113 杂务

    题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它.比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作.尽早将所有杂务完成是必要的,因为 ...

  8. 【深度优先搜索】mr353-取奶

    应该是USACO的题目,暂时没有找到对应出处. [题目大意] 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位——译者注) 他的最好的牛奶,并把它装 ...

  9. 使用redis时出现java.util.ArrayList cannot be cast to java.lang.Long

    java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long at redis.clients. ...

  10. static_cast, dynamic_cast, reinterpret_cast, const_cast的区别

    static_cast最像C风格的强制转换,很多时候都需要程序员自身去判断转换是否安全.但是相对C风格的强制转换,在无关类的类指针之间转换上,有安全性的提升. dynamic_cast是运行时的转换吧 ...