1. 程式人生 > >處理大資料到資料庫的存取與讀出

處理大資料到資料庫的存取與讀出

package cn.my.demo1;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.rowset.serial.SerialBlob;

import org.apache.commons.io.IOUtils;
import org.junit.Test;


import cn.jdbc.JdbcUtils;
/**
 * 處理大資料到資料庫裡
 * MP3檔案的存取與讀出
 * 使用Blob類
 * @author Administrator
 *
 */
public class DemoA {
	/**
	 * 儲存MP3檔案
	 * @throws SQLException 
	 * @throws IOException 
	 * @throws ClassNotFoundException 
	 */
	@Test
	public void  fun1() throws ClassNotFoundException, IOException, SQLException {
		Connection con=JdbcUtils.getConnection();
		String sql="insert into table_bin values(?,?,?)";
		PreparedStatement pSt=con.prepareStatement(sql);
		//設定sql的引數
		pSt.setInt(1, 2);
		pSt.setString(2, "認真的雪.mp3");
		/*把檔案變成位元組陣列
		 * Blob物件的獲取通過位元組陣列
		 * 
		 */
		byte[] bytes=IOUtils.toByteArray(new FileInputStream("D:/認真的雪.mp3"));
		Blob blob=new SerialBlob(bytes);
		pSt.setBlob(3, blob);
		pSt.executeUpdate();
	}
	/**
	 * 提取MP3
	 * @throws SQLException 
	 * @throws IOException 
	 * @throws ClassNotFoundException 
	 * 
	 */
	@Test
	public void fun2() throws ClassNotFoundException, IOException, SQLException {
		Connection con=JdbcUtils.getConnection();
		String sql="select * from table_bin";
		PreparedStatement pSt=con.prepareStatement(sql);
		//執行查詢
		ResultSet rs=pSt.executeQuery();
		if(rs.next()){
			/*
			 *把Blob變成磁碟檔案
			 *通過Blob得到輸入流物件
			 *自己建立輸出流物件
			 *把輸入流資料寫入輸入流
			 */
			Blob blob=rs.getBlob("DATA");
			InputStream input=blob.getBinaryStream();
			OutputStream output=new FileOutputStream("D:/ss.mp3");
			//IOUtil是封裝檔案的操作的io流
			IOUtils.copy(input, output);
		}
		
	}
}

相關推薦

處理資料資料庫存取讀出

package cn.my.demo1; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStr

資料技術原理應用 第二章 資料處理架構Hadoop 學習指南

本指南介紹Linux的選擇方案,並詳細指引讀者根據自己選擇的Linux系統安裝Hadoop。請務必仔細閱讀完廈門大學林子雨編著的《大資料技術原理與應用》第2章節,再結合本指南進行學習。Hadoop是基於Java語言開發的,具有很好跨平臺的特性。Hadoop的所要求系統環境適用於Windows,Linux,Ma

傳統資料庫難以處理資料的原因

這其實是一個偽命題,我圍繞這個問題,問幾個問題:1,何為“傳統資料庫”?更多的人認為“處理不了大資料的資料庫叫做‘傳統資料庫’“,這樣你的問題就不用回答了……但是,接下來的一個問題是:2,何為“大資料”

c++ fstream + string 處理資料c 的fread)

一:起因(1)之前處理文字資料時,各種清洗資料用的都是java的File,FileReader/FileWriter,BufferedReader/BufferedWriter等類, (2)應用java的原因是java裡面的map非常靈活,eclipse編譯器更是給力,而且

《Hadoop 權威指南 - 資料的儲存分析》學習筆記

第一章 初識Hadoop 1.2 資料的儲存與分析 對多個硬碟中的資料並行進行讀/寫資料,有以下兩個重要問題: 硬體故障問題。解決方案:複製(replication),系統儲存資料的副本(replica)。 以某種方式結合大部分資料來共同完成分析。MapReduce

03 -2 numpypandas中isnull()、notnull()、dropna()、fillna()處理丟失資料的理解例項

引入三劍客 import numpy as np import pandas as pd from pandas import Series,DataFrame 處理丟失資料 1.有兩種丟失資料: None: Python自帶的資料型別 不能參與到任何計算中

oracle資料匯入sqlldr匯出sqluldr2

1.匯出sqluldr2 oracle資料匯出工具sqluldr2——專業大資料匯出工具,能夠將資料已txt,csv,dbf等格式快速匯出,效率比普通匯出快70%。 根據查詢語句匯出 field=0x3a表示以分號進行欄位隔開 sqluldr2.exe username/pwd query=

處理海量資料的方法思路

處理海量資料是大資料工程師必備技能,通過對PB級別的資料進行挖掘與分析發掘出有價值的資訊,為企業或政府做出正確決策提供依據,是十分必要的一項工作,以下是常用的海量資料處理方法! 1. Bloom filter Bloom filter是一種二進位制向量資料結構,具有很好的空間效率和時間效率,

處理資料的儲存讀取

在機器學習中,一般都需要先對資料進行資料預處理工作。模型一般需要反覆的調參,因此可能需要多次使用預處理之後的資料,但是反覆進行資料的預處理工作是多餘的,我們可以將其儲存下來。 #用pickle模組將處理好的資料儲存成pickle格式,方便以後呼叫,即建立一個checkpoint # 儲存資料方便呼叫

Hadoop(三) 資料離線計算實時計算

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Hadoop權威指南-資料的儲存分析第四版——學習筆記——第2章——1

MapReduce 適合處理半結構化的資料 MapReduce任務階段 Map階段+Reduce階段 Key-Value作為輸入輸出 實現兩個函式:map(),reduce() Map階段 輸入的Key:文字中的偏移量 輸入的value:文字 輸出的k-v給reduce處

乾貨!處理資料的技術盤點

資訊科技蓬勃發展,每天都有新產品問世,同時不斷地形成新的趨勢。這種不斷的變化使得資訊科技和軟體專業人員、開發人員、科學家以及投資者都不敢怠慢,並引發了新的職業機會和有意義的工作。然而,競爭是激烈的,與最新的技術和趨勢保持同步是永恆的要求。對於專業人士來說,在全球IT行業中,入行、生存和成長都變得

重溫資料---Hive介紹填坑配置

沿著前面的內容,接下來的文章就是關於Hive從基礎的搭建到高階應用的知識。鄙人在大二初學Hive的時候,只是覺得Hive和Mysql差不多,但是對於Hive為什麼叫做資料倉庫,以及Hive的UDF程式設計我並沒有太多思考。所以啊,為了混口飯吃遲早還是要還的。所幸目前算是明白了資料

Python環境安裝及資料基本預處理-資料ML樣本集案例實戰

版權宣告:本套技術專欄是作者(秦凱新)平時工作的總結和昇華,通過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。QQ郵箱地址:[email protected],如有任何學術交流,可隨時聯絡。 1 Python環

資料分析技術實戰之 Spark Streaming

Spark是基於記憶體的大資料綜合處理引擎,具有優秀的作業排程機制和快速的分散式計算能力,使其能夠更加高效地進行迭代計算,因此Spark能夠在一定程度上實現大資料的流式處理。 隨著資訊科技的迅猛發展,資料量呈現出爆炸式增長趨勢,資料的種類與變化速度也遠遠超出人們的想象,因此人們對大資料處理提出了

玩轉MySQL -----處理資料物件

一、大資料物件簡介  1.LOB(Large Object,大型物件)型別的欄位現在用得越來越多了。因為這種型別的欄位,容量大(最多能容納4GB的資料),且一個表中可以有多個這種型別的欄位,很靈活,適用於資料量非常大的業務領域(如圖象、檔案等)。  2.LOB型別分為BLO

《Hadoop權威指南資料的儲存分析第版修訂版升級版》pdf附網盤下載連結+(附一個菜鳥的java學習之路)

技術書閱讀方法論 一.速讀一遍(最好在1~2天內完成) 人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總結都會有特別好的作用。 對於每一章的知識,先閱讀標題,弄懂大概講的是什麼主題,再去快速看一遍,不懂也沒有關係,但是一定要在不懂的

利用feather快速處理資料

Feather是一個快速、輕量級的儲存框架,可以在應用在pandas的Dataframe資料結構中。 讀寫資料 import feather import pandas as pd def read_csv_feature(file_in): # 讀 f = ope

03 -2 numpypandas中處理丟失資料的理解例項

引入三劍客 import numpy as np import pandas as pd from pandas import Series,DataFrame 處理丟失資料 1.有兩種丟失資料: None: Python自帶的資料型別 不能參與到任何計算中

Hadoop資料平臺架構實踐

一、什麼是Apache Hadoop? 1.1 定義和特性 可靠的、可擴充套件的、分散式計算開源軟體。 Apache Hadoop軟體庫是一個框架,允許使用簡單的程式設計模型,在計算機叢集分散式地處理大型資料集。 它可以從單個伺服器擴充套件到數千臺機器,每個機