直接上下代码:

 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. [MYSQL]时间毫秒数转换

    java中常用bigint字段保存时间,通常将时间保存为一大串数字,每次取出需要在程序里转换,有时候程序里不方便,可以使用MYSQL自带的函数FROM_UNIXTIME(unix_timestamp, ...

  2. urllib2打开URL(含中文)的问题

    import urllib2 url = u"http://www.baidu.com/wd=测试" urllib2.urlopen(url.encode('utf-8')).re ...

  3. jQuery对select操作

    (转自:http://www.cnblogs.com/as285996985/articles/1535014.html) //遍历option和添加.移除optionfunction changeS ...

  4. Visual Studio 调试技巧:10 篇热文汇总

    本文精选了 DotNet  2017年11月份的10篇热门文章.其中有技术分享.技术资源. 注:以下文章,点击标题即可阅读 <Visual Studio的调试技巧 > 调试技巧是衡量程序员 ...

  5. android textview xml 属性设置

     android:ems 设置TextView的宽度为N个字符的宽度. android:maxems 设置TextView的宽度为最长为N个字符的宽度.与ems同时使用时覆盖ems选项. andr ...

  6. std::hash实现太简单分布不匀

    std::hash实现太简单分布不匀(金庆的专栏 2017.5)#include <iostream>#include <functional>using namespace ...

  7. ffmpeg推送RTSP直播流到EasyDarwin报错问题的修复

    在之前的博客<ffmpeg推送,EasyDarwin转发,vlc播放 实现整个RTSP直播>中,我们介绍了如何采用ffmpeg进行RTSP推送,实现EasyDarwin直播分发的功能,近期 ...

  8. canvas 绘制环形进度条

    结果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...

  9. mysql数据库( 基础篇加破解)

    1.数据库(Database,DB)是按照数据结构来组织.存储和管理数据的,并且是建立在计算机存储设备上的仓库 2.什么是数据库:(用来存储数据的仓库) 数据库:(cs架构套接字) 数据库管理软件分类 ...

  10. not

    x = [] print(x) print(not x) print(x is None) print(not x is None) print(x is not None)