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. virtualbox+vagrant学习-4-Vagrantfile-8-WinSSH

    WinSSH WinSSH通信器是专门为OpenSSH的Windows本机端口构建的.它不依赖于类posix的环境,这种环境消除了额外的软件安装(如cygwin)以获得适当功能的需求. 想获得更多的信 ...

  2. 在 S5PV210 的 开发板上 点亮 一个 LED 灯

    参考学习教程:周立功嵌入式Linux开发教程-(上册) 材料:首先 准备一个 安装好 Linux 的 开发板 使用  xshell 工具 连接 开发板  ,winscp 工具 连接 开发板  ,  准 ...

  3. linux下安装perl

    1.在官网  http://www.perl.org/get.html  下载perl安装包 2.上传服务器并解压 3../Configure -des -Dprefix=安装目录 4.make&am ...

  4. C#实体更新指定的字段

    接口类: /// <summary> /// 更新指定字段 /// </summary> /// <param name="entity">实体 ...

  5. 分布式一致性协议-2PC与3PC(二)

    一.分布式一致性 一个事务需要跨多个分布式节点,又要保持事务的ACID特性,需要引入协调者来统一调度所有分布式节点的执行逻辑,被调度的节点称为参与者. 协调者负责调用参与者,并决定最终是否提交事务.基 ...

  6. docker搭建本地私仓

    环境centos7  docker-ce 18 启动仓库镜像 docker run -d -p 5000:5000 registry:2 docker images 通过docker tag 标识镜像 ...

  7. Oracle 11g R2 RAC with ASM存储迁移--Rman copy&ASM Rebalance(一)

    ASM GROUP-Rman copy迁移 0x00--环境介绍 VMware版本:VMware12pro 主机操作系统:RHEL6.5_64 共享存储使用VMWARE创建共享磁盘文件 数据库版本:O ...

  8. FMDB数据库使用

    创建数据库路径 NSString* docsdir = [NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainM ...

  9. JAVA项目服务器部署

    1.下载 Java JDK 搜索jdk下载,然后进入JAVA官方网站jdk下载页,选择自己的对应的操作系统,点击下载 https://www.oracle.com/technetwork/java/j ...

  10. Web前端---HTTP协议

    目录 HTTP协议 一.http协议概述 二.http请求报文 1.GET请求 2.POST请求 三.http响应报文 1.响应报文内容 2.状态码(Status Code) HTTP协议 一.htt ...