1. 程式人生 > >JDBC大數據的采取

JDBC大數據的采取

行數 進行 配置 代碼 cti apar 插入 流操作 導致


## JDBC的大類型數據的存取 ##

# 基本概念;
|-- 大文本類型數據和大二進制數據;
主要思想用於將大型的二進制數據(字節)
或是大型的文本數據(字符)從磁盤文件中讀取
到數據庫中,或是從數據庫中讀出到磁盤中;

簡言之是數據庫的流操作;


# 大文本數據;
>> 基本步驟;
|-- ClobTest.java
|-- 建庫;
|-- 建表;
|-- 更新配置文件;
|-- 從流中將數據讀取到數據庫當中;
|-- setCharacterStream()方法的細節問題;
> 在1.6當中才會支持long類型;
> 在1.5當中只支持int類型;

|-- 從數據庫中將數據讀取出來;

# 大二進制數據;
>> 基本步驟;(參考文本類型方法);

## 批處理 ##

# 基本概念;
|-- 批量處理數據;


# 兩種處理方式
>> Statement
|-- sql語句固定;
|-- 可以一次性執行不同的sql
>> PreaparedStatement
|-- sql參數不確定
|-- 一次性只能執行相同的語句;
|-- 內存溢出;
> 由於每次添加的數據都在內存當中;
> 所以當超出一定的限定之後可能會導致內存溢出;

|-- 優化;
> 使用判斷語句;
> 分批次執行;
> 然後清空已經執行完畢的數據;

## 存儲過程調用 ##

# 基本概念;
事先由DBA開發並被事先編譯完成,運行在服務器上;
可提高效率和安全性;

# 使用方式
>> 定義;
>> 使用;(可參見資料);
>> 調用;

## 事務入門 ##

# 基本概念;
事物處理語言(TPL);
默認情況下一條語句就是一個單獨的事務,事務是一個整體;
可以將多條執行同一個任務的語句封裝成一個事務,例如轉賬;


# 基本步驟;
>> start transaction ; --- 開啟事務
>> commit; --- 提交事務;
>> rollback;--- 回滾事務(如果失敗);

# 事務的特性;
>> 原子性 --- 不可拆分,要麽多條語句都成功,要麽都不成功;
>> 一致性 --- 必須是數據庫從一個一致性的狀態,全部轉化到另一個一致的狀態;
>> 隔離性 --- 多線程並發訪問時,一個事務不能被其他事務所幹擾;
>> 持久性 --- 當事務完成之後,數據應該被永久性的保存起來;

# 隔離操作
數據庫系統要負責隔離操作,寫代碼只需要對隔離級別進行設置。如果不進行相應設計,
可能會導致以下問題;

a,臟讀:一個事務讀取到了另一個事務“未提交”的數據。
b,不可重復讀:在一個事務內讀取表中的某一行數據,多次讀取結果不同。
c,虛讀(幻讀):是指在一個事務內讀取到了別的事務插入的數據,導致前後讀取不一致。


## 數據庫連接池 ##
# 基本概念;
# 自定義連接池;

JDBC大數據的采取