JDBC处理大数据
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处理大数据的更多相关文章
- JDBC之 大数据内容的传输
JDBC之 大数据内容的传输 什么是大数据内容? 在数据库中,有一条一条的记录,记录中很多字段都是几个字符就够的,假如现在要把一部小说存入数据库,这本小说当然不是几个字符组成,而是由几万字组成,这本小 ...
- (十六)JDBC 处理大数据
目录 前言: 基本概念 对于Mysql的Text类型 流地址的写法 blob类型数据 备注 前言: 在实际开发中,程序需要把 大文本或二进制 数据保存到数据库中: 实际上,我们并不存储大的数据到数据库 ...
- JDBC 学习笔记(二)—— 大数据+存储过程+批处理+事务管理
本文目录: 1.使用JDBC处理大数据 2.使用JDBC处理大文本 3.使用JDBC处理二进制数据 4.Oracle中大数据处理 5 ...
- BLOB:大数据,大对象,在数据库中用来存储超长文本的数据,例如图片等
将一张图片存储在mysql中,并读取出来(BLOB数据:插入BLOB类型的数据必须使用PreparedStatement,因为插入BLOB类型的数据无法使用字符串拼写): -------------- ...
- 使用JDBC处理MySQL大数据
一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...
- 使用JDBC处理Oracle大数据
一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...
- 利用jdbc处理oracle大数据---大文件和二进制文件
一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...
- 利用JDBC处理mysql大数据--大文本和二进制文件等
转载自http://www.cnblogs.com/xdp-gacl/p/3982581.html 一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob, ...
- JavaWeb学习总结(十)--JDBC之MySQL大数据
一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 但是,在mysql ...
随机推荐
- hibernate二级缓存实例
hibernate.cfg.xml <?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration P ...
- 用 S5PV210 学习 Linux (三) SD卡下载
学习地址:http://edu.51cto.com/lesson/id-63015.html http://blog.csdn.net/karven_/article/details/52015325 ...
- Java Web 程序猿的职业进阶之路
啥也不说了,都在图里了.希望能够给大家的职业规划一些提示,尤其是写了几年程序,却越来越迷茫的同学.
- 使用DBNEWID Utility 修改oracle数据库的 db name 和 dbid
使用DBNEWID Utility 工具可以同时修改数据库名.DBID,也可以只修改其中一项 官方参考: https://docs.oracle.com/cd/E11882_01/server.112 ...
- HIve常用CLI命令
1. 清楚屏幕:Ctrl+L 或者!Clear 最后加上分号 2. 查看数据仓库中的表:show tables; 3. 查看数据仓库中内置函数:show functions: 4. 查看表结构 :de ...
- nRF52832 BLE_DFU空中升级OTA(一)安装软件(SDK14.2.0)
准备工作,需要安装好几个软件,详细的过程请参考下面的文章(http://www.cnblogs.com/iini/p/9314246.html)这里说的非常详细,而且也有工具在云盘,对于初学者非常友好 ...
- python-类(1)
·类(Class) 笔记: Python是一种面向对象(Object Oriented)的编程语言,类(Class)是Python的核心概念.在Python中,不管是列表.字符串.函数和类都是对象. ...
- Python学习 :网络通信要素
网络通信 OSI 模型 - 定义了计算机互联的标准,是设计和描述计算机网络通信的基本框架 - 把网络通信的工作分为7层,分别是物理层.链路层(数据网络层).网络层.传输层.会话层.表示层和应用层 网络 ...
- hadoop伪分布式组件安装
一.版本建议 Centos V7.5 Java V1.8 Hadoop V2.7.6 Hive V2.3.3 Mysql V5.7 Spark V2.3 Scala V2.12.6 Flume V1. ...
- Go实现发送解析GET与POST请求
参考链接: https://www.jb51.net/article/115693.htm https://www.jb51.net/article/60900.htm https://www.cnb ...