/*
  * 读取BLOB数据:
  *  使用getBlob方法读取到Blob对象
  *  调用Blob的getBinaryStream(方法得到输入流,在使用IO操作
  * */
 @Test
 public void readBlob(){
  
  Connection conn=null;
  PreparedStatement ps=null;
  ResultSet rs=null;
  try {
   conn=JDBCTools.getConnection();
   String sql="select * from customers where id=8";
   ps=conn.prepareStatement(sql);
   rs=ps.executeQuery();
   if (rs.next()) {
    int id=rs.getInt(1);
    String name=rs.getString(2);
    String email=rs.getString(3);
    Blob picture=rs.getBlob(5);
    InputStream in=picture.getBinaryStream();
    OutputStream os=new FileOutputStream("xrk.jpg");
    byte[] buffer=new byte[1024];
    int len=0;
    while((len=in.read(buffer))!=-1){
     os.write(buffer, 0, len);
    }
    os.close();
    in.close();
    System.out.println(id+"  "+name+" "+email);
   }
   
  } catch (Exception e) {
   e.printStackTrace();
  }finally{
   JDBCTools.release(rs, ps, conn);
  }
 }
 
 /*
  * 插入BLOB类型的数据必须使用PreparedStatement:因为BLOB类型的数据是无法使用字符串拼写的
  * */
 @Test
 public void testInsertBlob(){
  
  Connection conn=null;
  PreparedStatement ps=null;
  
  try {
   
  conn=JDBCTools.getConnection();
  String sql="insert into customers (name,email,birth,picture)values(?,?,?,?)";
  ps=conn.prepareStatement(sql);
  ps.setString(1, "zpy");
  ps.setString(2, "zpy@.com");
  ps.setDate(3, new Date(new java.util.Date().getTime()));
  InputStream is=new FileInputStream("kk.jpg");
  ps.setBlob(4, is);
  ps.executeUpdate();
  
  } catch (Exception e) {
   JDBCTools.release(null, ps, conn);
  }
 }

<十>JDBC_处理Blob类型数据的更多相关文章

  1. mysql存取blob类型数据

    参考网址:http://www.cnblogs.com/jway1101/p/5815658.html 首先是建表语句,需要实现将表建立好. CREATE TABLE `blobtest` ( `pr ...

  2. mybatis 处理CLOB/BLOB类型数据

    BLOB和CLOB都是大字段类型. BLOB是按二进制来存储的,而CLOB是可以直接存储文字的. 通常像图片.文件.音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去.文章或者是较长的文字 ...

  3. JDBC基础学习(三)—处理BLOB类型数据

    一.BLOB类型介绍      在MySQL中,BLOB是一个二进制的大型对象,可以存储大量数据的容器,它能容纳不同大小的数据.      在MySQL中有四种BLOB类型.          实际使 ...

  4. 插入与读取Blob类型数据

    BlobTest package com.aff.PreparedStatement; import java.io.File; import java.io.FileInputStream; imp ...

  5. KingbaseES blob 类型数据导入导出

    KingbaseES兼容了oracle的blob数据类型.通常是用来保存二进制形式的大数据,也可以用来保存其他类型的数据. 下面来验证一下各种数据存储在数据库中形式. 建表 create table ...

  6. oracle 向表中插入BLOB类型数据

    提示: 待插入图片必须保存到oracle主机路径上. 步骤: 1.SYSDBA权限用户创建图片所在目录 CREATE OR REPLACE DIRECTORY TEST_DIR AS 'C:\Pict ...

  7. 读取和写入blob类型数据

    读写oracle  blob类型 http://zyw090111.iteye.com/blog/607869 http://blog.csdn.net/jeryjeryjery/article/de ...

  8. 基于PLSQL的数据库备份方法及如何解决导出clob和blob类型数据报错的问题

    基于PL/SQL的数据库备份方法 PL/SQL Developer是Oracle 数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对 ...

  9. jsp页面file标签上传图片以及blob类型数据库存取。

    我的jsp页面表单如下: <form name="form1" action="/YiQu/AddUserServlet?jurisdiction=1" ...

随机推荐

  1. flask_sqlalchemy 命名遇到的一个小坑

    大概用了三个小时的时间. models.py class DriveRecord(db.Model): """drive record model"" ...

  2. 关于Vue vuex vux 文档

    01. vue 链接 http://vuejs.org.cn/guide/ 02. vuex  ----->>状态管理模块儿<<------- https://vuex.vue ...

  3. Oracle10g 表分区

    1.分区的原因 (1)Tables greater than 2GB should always be considered for partitioning. (2)Tables containin ...

  4. POJ 2352 Stars 线段树

    题目链接 题意:在一个二维平面上有n个星星,每个星星的等级为x,x为该星星左方和下方所包含的星星的数量(包含正左和正下的),输出每个等级各有多少星星,星星坐标按照y序递增给出,y值相同按照x递增给出. ...

  5. ajax循环读取json多维数组

    test.json: { "one": [ { "name": "黑默丁格", "car": "鲁LLL608 ...

  6. Hive的三种安装方式(内嵌模式,本地模式远程模式)

    一.安装模式介绍:     Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景.     1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错)   ...

  7. FTP上传文件到服务器

    一.初始化上传控件. 1.我们这里用dropzone.js作为上传控件,下载地址http://www.dropzonejs.com/ 2.这里我们使用一个div元素作为dropzone载体. < ...

  8. KickStart 无人值守安装系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  9. mysql优化笔记之分页

    过年闲得蛋疼,于是看看mysql优化,看了网上好多关于分页的优化方法,但是呢,我亲自试上一把的时候,没有出现他们说的现象...难道是我的机器问题么? 下面看看我的实践记录,希望看到的加入进来交流一下O ...

  10. URAL 2089 Experienced coach Twosat

    Description Misha trains several ACM teams at the university. He is an experienced coach, and he doe ...