处理大数据对象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 一.前言 在 ...
随机推荐
- button出现投影
style="?android:attr/borderlessButtonStyle" xml中加上这属性
- Android界面View及ViewGroup学习 《转载》
View及ViewGroup类关系 Android View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的. View ...
- Oracle中的填充函数lpad和rpad的用法(转)
原文链接:http://blog.csdn.net/myzhanglt/article/details/7392999 今日学习遇到一个不熟悉的函数LPAD,查了一下文档,将其用法总结如下: Lpad ...
- 如何在eclipse中安装ADT
打开Eclipse,点击 Help -> Install New Software: 点击Add: 然后点击Archive,添加对应的上面的ADT-21.0.1.zip: OK后,再写上一个名字 ...
- socketserver模块简介
1. socketserver模块简介 在python的socket编程中,实用socket模块的时候,是不能实现多个连接的,当然如果加入其 它的模块是可以的,例如select模块,在这里见到的介绍下 ...
- MpVue开发之swiper的使用
用到的关键字如下: class :class current :current bindchange @change circular 是否实现无限滑动 true/false skip-hidden ...
- InnoSetup使用笔记
今天用InnoSetup做安装包时,因为要装的驱动区分32位.64位,64位系统中要安装32位+64位驱动. 想在脚本中进行判断.折腾一阵,终于搞定: 参考了:http://379910987.blo ...
- Switch能否使用String做参数
在Java语言中Swith可以使用参数类型有:Only convertible int values, strings or enum variables are permitted 可以自动转换为整 ...
- 客户端如何调用WebService并且POST数据
直接上代码 using System; using System.Collections.Generic; using System.Linq; using System.Text;using Sys ...
- linux之 crontab 定时任务
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查 ...