1、处理大文本

 package com.demo;

 import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import org.junit.Test; import com.utils.DButils; //jdbc存大文本数据 public class Demo1 {
@Test
public void insert() throws SQLException, FileNotFoundException{
Connection con = null;
PreparedStatement st = null;
ResultSet result = null;
try {
con = DButils.getConnection();
String sql = "insert into testclob(id,resume) values(?,?)";
st = con.prepareStatement(sql);
st.setString(1,"1"); File file = new File("src/1.txt");
FileReader reader = new FileReader(file); //设置大文本的列
st.setCharacterStream(2, reader, file.length());
int num = st.executeUpdate();
if(num>0){
System.out.println("插入成功");
}
}finally{
DButils.release(con, st, result);
}
} //读取大文本数据
@Test
public void read() throws SQLException, IOException{
Connection con = null;
PreparedStatement st = null;
ResultSet result = null; try {
con = DButils.getConnection();
String sql = "select id,resume from testclob where id='1'";
st = con.prepareStatement(sql);
result = st.executeQuery();
if(result.next()){
//String resume = result.getString("resume");不能用String保存,占用内存过大
Reader reader = result.getCharacterStream("resume");
FileWriter writer = new FileWriter("c:\\1.text");
try{
int len = 0;
char buffer[] = new char[1024];
while((len=reader.read(buffer))>0){
writer.write(buffer, 0, len);
}
}finally{
if(reader!=null){
reader.close();
}
writer.close();
}
}
}finally{
DButils.release(con, st, result);
}
} }

2、处理二进制文件

 package com.demo;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import org.junit.Test; import com.utils.DButils; //jdbc存取二进制文件
public class Demo2 {
@Test
public void insert() throws SQLException, FileNotFoundException{
Connection con = null;
PreparedStatement st = null;
ResultSet result = null;
try{
con = DButils.getConnection();
String sql = "insert into testblob(id,image) values(?,?)";
st = con.prepareStatement(sql);
st.setString(1, "1");
File file = new File("src/1.jpg");
FileInputStream in = new FileInputStream(file);
st.setBinaryStream(2, in, file.length());
st.executeUpdate();
}finally{
DButils.release(con, st, result);
}
} @Test
public void read() throws SQLException, IOException{
Connection con = null;
PreparedStatement st = null;
ResultSet result = null;
try{
con = DButils.getConnection();
String sql = "select id,image from testblob where id='1'";
st = con.prepareStatement(sql);
result = st.executeQuery();
if(result.next()){
51 InputStream in = result.getBinaryStream("image");
52 OutputStream out = new FileOutputStream("c:\\1.jpg");
53 try{
54 int len = 0;
55 byte[] buffer = new byte[1024];
56 while((len=in.read(buffer))>0){
57 out.write(buffer, 0, len);
58 }
59 }finally{
60 if(in!=null){
61 in.close();
62 }
63 if(out!=null){
64 out.close();
65 }
66 }
67 }
}finally{
DButils.release(con, st, result);
}
}
}

JDBC处理大数据的更多相关文章

  1. JDBC之 大数据内容的传输

    JDBC之 大数据内容的传输 什么是大数据内容? 在数据库中,有一条一条的记录,记录中很多字段都是几个字符就够的,假如现在要把一部小说存入数据库,这本小说当然不是几个字符组成,而是由几万字组成,这本小 ...

  2. (十六)JDBC 处理大数据

    目录 前言: 基本概念 对于Mysql的Text类型 流地址的写法 blob类型数据 备注 前言: 在实际开发中,程序需要把 大文本或二进制 数据保存到数据库中: 实际上,我们并不存储大的数据到数据库 ...

  3. JDBC 学习笔记(二)—— 大数据+存储过程+批处理+事务管理

    本文目录:       1.使用JDBC处理大数据        2.使用JDBC处理大文本        3.使用JDBC处理二进制数据        4.Oracle中大数据处理        5 ...

  4. BLOB:大数据,大对象,在数据库中用来存储超长文本的数据,例如图片等

    将一张图片存储在mysql中,并读取出来(BLOB数据:插入BLOB类型的数据必须使用PreparedStatement,因为插入BLOB类型的数据无法使用字符串拼写): -------------- ...

  5. 使用JDBC处理MySQL大数据

    一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...

  6. 使用JDBC处理Oracle大数据

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

  7. 利用jdbc处理oracle大数据---大文件和二进制文件

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

  8. 利用JDBC处理mysql大数据--大文本和二进制文件等

    转载自http://www.cnblogs.com/xdp-gacl/p/3982581.html 一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob, ...

  9. JavaWeb学习总结(十)--JDBC之MySQL大数据

    一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 但是,在mysql ...

随机推荐

  1. JNI由浅入深_4_JNI基础知识详解

    Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 ...

  2. nRF5 SDK for Mesh(二) Getting started 快速开始

    Getting started To get started, take a look at the Light switch demo. It shows how a simple applicat ...

  3. linux的虚拟文件系统VFS

    虚拟文件系统(virtual file system),别名虚拟文件系统开关,是linux中的一个软件层,向用户空间提供文件系统操作接口. VFS包含的系统调用包括open(2).stat(2).re ...

  4. 部分用户间接性访问不了linux服务器解决方法

    linux的/etc/sysctl.conf中应设置 net.ipv4.tcp_tw_reuse = net.ipv4.tcp_tw_recycle = 参考文章: https://ieevee.co ...

  5. Oracle视图View

  6. 一个loser的忏悔

    一直认为自己是世界的主角,从小意气用事,耽误了学业,现在才发现了自己的爱好,于是开始努力进阶. 愿不辜负自己的努力! 高中大学青葱旺盛的美好时期全部用在了感叹人生上,只能在30岁的年纪重新扛起学业,活 ...

  7. 【OC底层】OC对象本质,如 isa, super-class

    Objective-C的本质 1.我们编写的Objective-C,底层现实都是C/C++,代码生成步骤如下:   2.在OC中的所有面向对象的实现,都是基于C/C++的数据结构实现的 3.将Obje ...

  8. App Store 加急审核解析

    什么是加急审核 首先,提交二进制文件到 App Store,是要交给 App Store Review 团队去审核的.下面这句话是我从他们那边拿到的官方数据: On average, 50 perce ...

  9. python 判断是否是润年及函数封装

    方法一, 从终端输入一个表示年份的整数,判断是否是闰年,是就打印xxx年是闰年,不是打印xxx年不是闰年 y = int(input('请输入一个年份:')) if (y % 4 == 0 and y ...

  10. shell习题第9题:sed的常用用法

    [题目要求] 把一个文本文档的前5行中包含字母的行删除掉,同时把6到10行中的全部字母删除掉. [核心要点] sed命令 [脚本] .txt |sed '/[a-zA-Z]/d' .txt |sed ...