直接上下代码:

 package com.learn.jdbc.chap06;

 import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement; import com.learn.jdbc.model.Album;
import com.learn.jdbc.util.DbUtil; /**
* 处理大数据对象clob数据和blob数据--插入
* @author Administrator
*
*/
public class Demo1 {
private static DbUtil dbUtil=new DbUtil(); private static int addAlbum(Album ab) throws Exception{
Connection con = dbUtil.getCon();
String sql="insert into sp_album_test values (null,?,?,?,?,?)";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, ab.getName());
pstmt.setInt(2, ab.getUid());
pstmt.setLong(3, ab.getTime()); // 大字符数据(clob数据)插入数据库--文本文件
File content = ab.getContent();
InputStream inputStream = new FileInputStream(content);
pstmt.setAsciiStream(4, inputStream, content.length()); // 二进制数据(blob数据)插入数据库--图片,电影,音乐
File pic = ab.getPic();
InputStream inputStream2 = new FileInputStream(pic);
pstmt.setBinaryStream(5, inputStream2, pic.length()); int result = pstmt.executeUpdate();
dbUtil.close(pstmt, con);
return result;
} public static void main(String[] args) throws Exception {
File content = new File("e:/code.txt");
File pic = new File("e:/Koala111.png");
Album ab = new Album("张三", 1, System.currentTimeMillis(), content, pic);
int result = addAlbum(ab);
if(result>0){
System.out.println("数据插入成功");
}else{
System.out.println("数据插入失败");
}
}
}
 package com.learn.jdbc.chap06;

 import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet; import com.learn.jdbc.util.DbUtil; /**
* 处理大数据对象clob数据和blob数据--查询
* @author Administrator
*
*/
public class Demo2 {
private static DbUtil dbUtil=new DbUtil(); private static void listAlbum(int id) throws Exception{
Connection con = dbUtil.getCon();
String sql="select * from sp_album_test where id=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery(); if(rs.next()){
String name = rs.getString("name");
int uid = rs.getInt("uid");
long time = rs.getLong("add_time");
// 读取大字符数据--clob数据
Clob clob =rs.getClob("content");
String content = clob.getSubString(1,(int) clob.length()); // 读取二进制数据--blob数据
Blob blob = rs.getBlob("pic");
OutputStream out = new FileOutputStream(new File("e:/kaola.png"));
out.write(blob.getBytes(1, (int) blob.length()));
out.close(); System.out.println("名字:"+name);
System.out.println("uid: "+uid);
System.out.println("时间: "+time);
System.out.println("内容: "+content); } } public static void main(String[] args) throws Exception {
listAlbum(1);
}
}

处理大数据对象clob数据和blob数据的更多相关文章

  1. ch6-定制数据对象(打包代码和数据)

    为了看出数据属于哪个选手,教练向各个选手的数据文件中添加了标识数据:选手全名,出生日期,计时数据. 例如:sarah文件的数据更新为: Sarah Sweeney,2002-6-17,2:58,2.5 ...

  2. Java数据库——处理大数据对象

    处理大数据对象 CLOB中可以存储海量文字 BLOB中可以存储海量二进制数据 如果程序中要想处理这样的大对象操作,则必须使用PreparedStatement完成,所有的内容要通过IO流的方式从大文本 ...

  3. 深入浅出JDBC-操作时间与大对象(Clob/Blob)

    一.时间(Date.Time.Timestamp) java.sql.Date/java.sql.Time/java.sql.Timestamp extends java.util.Date publ ...

  4. JDBC:数据库操作:处理大对象CLOB数据

    目标: 了解大对象处理基本原理, 掌握CLOB数据的读,写操作. 可以使用CLOB类处理大文本数据. 大对象处理主要指CLOB和BLOB两种类型字段.可以大量存储文字. 要想在程序中处理这样的大数据操 ...

  5. PDO操作大数据对象

    一般在数据库中,我们保存的都只是 int . varchar 类型的数据,一是因为现代的关系型数据库对于这些内容会有很多的优化,二是大部分的索引也无法施加在内容过多的字段上,比如说 text 类型的字 ...

  6. Oracle 常用的SQL语法和数据对象

    一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);  INSE ...

  7. Facebook存储技术方案:找出“暖性BLOB”数据

    Facebook公司已经在其近线存储体系当中彻底弃用RAID与复制机制,转而采用分布式擦除编码以隔离其所谓的“暖性BLOB”. 暖性?BLOB?这都是些什么东西?大家别急,马上为您讲解: BLOB—— ...

  8. Oracle---常用SQL语法和数据对象

    1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字 ...

  9. 使用ADO实现BLOB数据的存取 -- ADO开发实践之二

    使用ADO实现BLOB数据的存取 -- ADO开发实践之二 http://www.360doc.com/content/11/0113/16/4780948_86256633.shtml 一.前言 在 ...

随机推荐

  1. jQ通过cookie记住用户名

    总结要点: 一.封装的一个cookie函数: 二.获取input的value值:$("input[name=user]").val() 三.设置input的value值:$(&qu ...

  2. 017对象——对象 get_object_vars get_parent_class is_subclass_of interface_exists

    <?php /** */ //get_object_vars($obj) 获得对象的属性,以关联数据形式返回. /*class study{ public $name; public $age; ...

  3. 【51nod-1605】棋盘问题

    上帝创造了一个n*m棋盘,每一个格子都只有可能是黑色或者白色的. 亚当和夏娃在玩一个游戏,每次寻找边长为x的正方形,其中每个格子必须为黑色,然后将这些格子染白. 如果谁不能操作了,那么那个人就输了. ...

  4. Elasticsearch Painless语言(实现搜索打分基础)

    With the release of Elasticsearch 5.x came Painless, Elasticsearch's answer to safe, secure, and per ...

  5. LeetCode OJ:Multiply Strings (字符串乘法)

    Given two numbers represented as strings, return multiplication of the numbers as a string. Note: Th ...

  6. less 应用

    链接           变量传入, 实现不同方向的三角形

  7. 持久层框架:MyBatis 3.2(2)

    每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得.SqlSessi ...

  8. [Hive]HiveServer2概述

    1. HiveServer1 HiveServer是一种可选服务,允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果.HiveServer是建立在Apache ThriftTM(http: ...

  9. [置顶] Android Shape一些新玩法?

    敏少咨讯: 1.生活琐事篇 最近由于公司赶项目所以偷懒了,博客没有及时更新,还请小伙伴们手下留情啊!最近发生了很多趣事,就在今天我们学校退书籍费,这可把我开心的哈哈!无缘无故又有钱了,嘿嘿,刚好五一出 ...

  10. 6.etc目录下重要文件和目录详解

    1./etc/下的重要的配置文件 /etc(二进制软件包的 yum /rpm 安装的软件和所有系统管理所需要的配置文件和子目录.还有安装的服务的启动命令也放置在此处) /etc/sysconfig/n ...