Code:
  1. import java.io.*;
  2. import java.sql.*;
  3. /**
  4. * 测试操作blob数据
  5. */
  6. public class BlobTest {
  7. Connection con = null;
  8. private static String filepath = "d:/test/smile.jpg";
  9. private static String fileoutpath = "d:/test/smilecopy.jpg";
  10. /**
  11. * 往数据库中添加BLOB数据
  12. */
  13. public void addBlob() {
  14. try {
  15. // 创建一个PreparedStatement实例
  16. PreparedStatement pstmt = con
  17. .prepareStatement("insert into blobtest values(1,?)");
  18. File file = new File(filepath);
  19. FileInputStream fis = new FileInputStream(file);
  20. // 把输入流设置为预处理语句的对象。
  21. pstmt.setBinaryStream(1, fis, (int) file.length());
  22. // 执行更新
  23. pstmt.executeUpdate();
  24. pstmt.close();
  25. fis.close();
  26. } catch (Exception e) {
  27. e.printStackTrace();
  28. }
  29. }
  30. /**
  31. * 创建一个表
  32. */
  33. public void createTable() {
  34. try {
  35. con.createStatement().execute(
  36. "create table blobtest (id int ,pic blob,"
  37. + "constraint pk_blobtest primary key(id));");
  38. } catch (Exception e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. /**
  43. * 从数据库中读取BLOB数据
  44. */
  45. public void getBlob() {
  46. try {
  47. // 创建一个Statement实例
  48. Statement stmt = con.createStatement();
  49. ResultSet rst = stmt
  50. .executeQuery("select * from blobtest where id=1");
  51. rst.next();
  52. // 获得blob数据和它的输入流,然后通过输入流把数据写到文件中。
  53. Blob blob = rst.getBlob("pic");
  54. FileOutputStream out = new FileOutputStream(new File(
  55. fileoutpath));
  56. InputStream in = blob.getBinaryStream();
  57. int i;
  58. while ((i = in.read()) != -1)
  59. out.write(i);
  60. // 关闭输入、输出流.
  61. in.close();
  62. out.close();
  63. } catch (Exception e) {
  64. e.printStackTrace();
  65. }
  66. }
  67. public static void main(String[] args) throws Exception {
  68. Class.forName("com.mysql.jdbc.Driver").newInstance();
  69. BlobTest test = new BlobTest();
  70. test.con = java.sql.DriverManager.getConnection(
  71. "jdbc:mysql://localhost:3306/test", "root", "123456");
  72. test.createTable();
  73. test.addBlob();
  74. test.getBlob();
  75. }
  76. }

MySQL有四种BLOB类型:

  ·tinyblob:仅255个字符

  ·blob:最大限制到65K字节

  ·mediumblob:限制到16M字节

  ·longblob:可达4GB

一个简单的Blob存取例子相关推荐

  1. 一个简单的epoll测试例子

    一个简单的epoll测试例子 一段简单的epoll测试例子,编译运行后可以直接用浏览器访问localhost来测试. 1 #include <unistd.h> 2 #include &l ...

  2. 一个简单的三层架构例子(.NET入门)

    最近开始学习.NET 用的是c# 目前要用三层架构的模式开发一个简单的图书管理系统,不过以为刚接触这门技术.做起来分外吃力,甚至连究竟要写些什么都不清楚. 于是乎上网到处找寻三层架构的基础入门知识,终 ...

  3. 一个简单的iBatis入门例子

    一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. ibatis-2.3.4.726.jar ojdbc14.jar 2.创建类com/ ...

  4. linux下glew例子,一个简单的GLSL Shader例子

    本例子选自OpenGL Shading Language中的第一个Shader例子,使用颜色平滑地表示一个表面的温度.温度及其颜色的范围在应用程序中进行设置. //先看顶点着色器temp.vert: ...

  5. 一个简单的规则引擎例子

    本例使用的规则引擎包是RulesEngine,关于RulesEngine的介绍,请自行补充,这里只是一个极简单使用场景. 例子大体就是用户有一些优惠券,系统会根据用户订单情况,筛选可以使用的优惠券供用 ...

  6. 一个简单的马尔可夫过程例子

    什么是马尔可夫过程(Markov Process) 要说什么是马尔可夫过程,首先必须讲讲什么是随机过程(Stochastic Process). 設 (Ω,,P) (\Omega, \mathcal ...

  7. 如何写一个简单java接口的例子(内容详细,适合初学者)

    这里说一个简单的java接口的小例子(一个接口类,两个实现类) 先新建一个动态web工程: 我的项目目录是这样子的(接口写完之后目录) 先在test0609_test1包下new 一个interfac ...

  8. matlab 马尔可夫过程 实例,一个简单的马尔可夫过程例子

    什么是马尔可夫过程(Markov Process) 要说什么是马尔可夫过程,首先必须讲讲什么是随机过程(Stochastic Process). 設(Ω,,P)為一概率空間,另設集合T為一指標集合. ...

  9. 一个简单的DWR入门例子

    http://di201yao.iteye.com/blog/164095 什么是DWR?     DWR是一个Open Source的 java项目.DWR可以让JavaScript调用运行在Web ...

最新文章

  1. 今天没有浪费时间,我努力了
  2. 一文看懂5G芯片背后的明争暗斗
  3. linux性能优化实战-内存性能指标
  4. Javascript中的陷阱大集合【译】
  5. 微型计算机中数据总线既可以传输数据信息,计算机考试题库精简版
  6. PowerBI随笔(6)-filter、caculate、RELATED相关
  7. VTK:几何对象之OpenVRCube
  8. python怎么运行_程序员大牛讲解,Python程序的执行原理
  9. 深入剖析Redis事件驱动
  10. 在写易买网时产生的错误 JSTL标签库中c:choose/c:choose不能放JSP页面!-- --注释...
  11. [LeetCode] 350. 两个数组的交集 II intersection-of-two-arrays-ii(排序)
  12. PIC单片机的C语言程序基本框架,PIC单片机的基本编程汇总,初学者必看
  13. PTA 基础编程题目集 7-15 计算圆周率 C语言
  14. unity物理引擎详解
  15. Matlab绘制柱状图, 设置figure的最大最小值
  16. 顶级赛事 | 2019 CCF BDCI,最值得参与的国际大数据及AI赛事之一
  17. 018-双因素理论|如何管理80后,90后
  18. 知乎大V推荐!如何在面试中通过工厂模式来给自己加分?圆我大厂梦!
  19. C3 linearization
  20. 邓俊辉《数据结构》-列表学习笔记

热门文章

  1. Solving environment: failed conda all InvalidVersionSpecError: Invalid version spec: =2.7报错
  2. 跨境电商erp有哪些功能?跨境erp是跨境电商卖家必备么?
  3. 广告系统中的Exploitation and Exploration(一)
  4. Leetcode每日一题:107.binary-tree-level-order-traversal-ii(二叉树的层次遍历)
  5. Java操作Json工具——Jackson
  6. 西瓜书+实战+吴恩达机器学习(十四)无监督学习之聚类(k-means, LVQ, 高斯混合聚类, DBSCAN, AGNES)
  7. 线性代数基础(矩阵、范数、正交、特征值分解、奇异值分解、迹运算)
  8. 使用mcisendstring重复播放音乐文件
  9. c++ opencv mat_实战 | OpenCV 实现多张图像拼接
  10. android ctrl 左键鼠标左键直接打开xml文件夹,android – 在listview项目上单击打开xml文件...