处理大数据对象clob数据和blob数据
直接上下代码:
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数据的更多相关文章
- ch6-定制数据对象(打包代码和数据)
为了看出数据属于哪个选手,教练向各个选手的数据文件中添加了标识数据:选手全名,出生日期,计时数据. 例如:sarah文件的数据更新为: Sarah Sweeney,2002-6-17,2:58,2.5 ...
- Java数据库——处理大数据对象
处理大数据对象 CLOB中可以存储海量文字 BLOB中可以存储海量二进制数据 如果程序中要想处理这样的大对象操作,则必须使用PreparedStatement完成,所有的内容要通过IO流的方式从大文本 ...
- 深入浅出JDBC-操作时间与大对象(Clob/Blob)
一.时间(Date.Time.Timestamp) java.sql.Date/java.sql.Time/java.sql.Timestamp extends java.util.Date publ ...
- JDBC:数据库操作:处理大对象CLOB数据
目标: 了解大对象处理基本原理, 掌握CLOB数据的读,写操作. 可以使用CLOB类处理大文本数据. 大对象处理主要指CLOB和BLOB两种类型字段.可以大量存储文字. 要想在程序中处理这样的大数据操 ...
- PDO操作大数据对象
一般在数据库中,我们保存的都只是 int . varchar 类型的数据,一是因为现代的关系型数据库对于这些内容会有很多的优化,二是大部分的索引也无法施加在内容过多的字段上,比如说 text 类型的字 ...
- Oracle 常用的SQL语法和数据对象
一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...
- Facebook存储技术方案:找出“暖性BLOB”数据
Facebook公司已经在其近线存储体系当中彻底弃用RAID与复制机制,转而采用分布式擦除编码以隔离其所谓的“暖性BLOB”. 暖性?BLOB?这都是些什么东西?大家别急,马上为您讲解: BLOB—— ...
- Oracle---常用SQL语法和数据对象
1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字 ...
- 使用ADO实现BLOB数据的存取 -- ADO开发实践之二
使用ADO实现BLOB数据的存取 -- ADO开发实践之二 http://www.360doc.com/content/11/0113/16/4780948_86256633.shtml 一.前言 在 ...
随机推荐
- 【dlbook】机器学习基础
[机器学习基础] 模型的 vc dimension 如何衡量? 如何根据网络结构衡量模型容量?有效容量和模型容量之间的关系? 统计学习理论中边界不用于深度学习之中,原因? 1.边界通常比较松, 2.深 ...
- Near Field Communication (NFC) applications
Near Field Communication (NFC) applications There has been little practical guidance available on NF ...
- 程序员有什么办法能快速梳理java知识点?有这八张图就够了
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符串不变性 下面这张图展示了这段代码做 ...
- 你必须知道的495个C语言问题,学习体会一
C语言作为一门古老的语言,其灵活性和容易出错都让人 又爱又恨,书籍<你必须知道的495个C语言问题>,使用问答的形式,告诉读者 C语言使用的各个方面的知识,包括一些冷知识等.以下,我要摘录 ...
- (十二)break,continue
class Break { //break,continue public static void main(String[] args) { //break for(int i =0;i<=5 ...
- 使用MS VS的命令来编译C++程序
以前,我是在linux下使用命令或者makefile来编译C++程序的,最近需要在windows上做点测试.于是使用ms VS来作为开发工具,这种大揽全包的IDE确实好用:点一下菜单,编译结果就出来了 ...
- 使用Audition录制自己的歌曲
Audition专为在照相室.广播设备和后期制作设备方面工作的音频和视频专业人员设计,可提供先进的音频混合.编辑.控制和效果处理功能.最多混合 128 个声道,可编辑单个音频文件,创建回路并可使用 4 ...
- python函数返回值
2016-08-09 15:01:38 python函数返回值使用return语句,可以返回任意类型的数.如果return语句执行,它之后的所有语句都不再执行. def func(x,y): pri ...
- 使用Volley框架中的ImageLoader来异步的加载图片
Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.ImageLoader的内部使用ImageRequest来实现,它的构造器可 ...
- Android开发的基础知识点
1.Android开发的四大组件: Activity:android应用程序上看到的一页. Service:运行在后台,可以其他组件交互(音乐播放器). BroadcoastReceiver:用来对外 ...