11 java 王少飛 jdbc知識點

2021-06-09 06:51:21 字數 2495 閱讀 9865

知識點一: 使用jdbc進行批處理

為什麼需要批處理?

答:當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。

實現批處理有兩種方式

執行批處理sql語句的幾種方法:

executebatch()方法:執行批處理命令

clearbatch()方法:清除批處理命令

第一種方式:

statement.addbatch(sql),下面是乙個例子:

connection conn = null;

statement st = null;

resultset rs = null;

try finally

採用statement.addbatch(sql)方式實現批處理:

優點:可以向資料庫傳送多條不同的sql語句。

缺點:sql語句沒有預編譯。

當向資料庫傳送多條語句相同,但僅引數不同的sql語句時,需重複寫上很多條sql語句。例如:

insert into user(name,password) values(『aa』,』111』);

insert into user(name,password) values(『bb』,』222』);

insert into user(name,password) values(『cc』,』333』);

insert into user(name,password) values(『dd』,』444』);

第二種方式:

preparedstatement.addbatch(),下面是乙個例子:

conn = jdbcutil.getconnection();

string sql = "insert into user(name,password,email,birthday) values(?,?,?,?)";

st = conn.preparestatement(sql);

for(int i=0;i<50000;i++)

}st.executebatch();

採用preparedstatement.addbatch()實現批處理

優點:傳送的是預編譯後的sql語句,執行效率高。

缺點:只能應用在sql語句相同,但引數不同的批處理中。因此此種形式的批處理經常用於在同乙個表中批量插入資料,或批量更新表的資料。

知識點二:事務

事務的概念:事務指邏輯上的一組操作,組成這組操作的各個單元,要不全部成功,要不全部不成功。

資料庫開啟事務命令的幾個方法:

start transaction  開啟事務

rollback  回滾事務

commit   提交事務

建立jdbc的事務主要分以下步驟

1.設定事務的提交方式為非自動提交:

conn.setautocommit(false);

2.將需要新增事務的**放入try,catch塊中。

3.在try塊內新增事務的提交操作,表示操作無異常,提交事務。

conn.commit();

4.在catch塊內新增回滾事務,表示操作出現異常,撤銷事務:

conn.rollback();

5.設定事務提交方式為自動提交:

conn.setautocommit(true);

事務的特性(acid)

原子性(atomicity)  原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。 

一致性(consistency)事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態。

隔離性(isolation)  事務的隔離性是多個使用者併發訪問資料庫時,資料庫為每乙個使用者開啟的事務,不能被其他事務的運算元據所干擾,多個併發事務之間要相互隔離。

永續性(durability) 永續性是指乙個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響。

事務的隔離級別

多個執行緒開啟各自事務運算元據庫中資料時,資料庫系統要負責隔離操作,以保證各個執行緒在獲取資料時的準確性。

如果不考慮隔離性,可能會引發如下問題:

髒讀:指乙個事務讀取了另外乙個事務未提交的資料。

不可重複讀:在乙個事務內讀取表中的某一行資料,多次讀取結果不同。

虛讀(幻讀):是指在乙個事務內讀取到了別的事務插入的資料,導致前後讀取不一致。

資料庫共定義了四種隔離級別:

serializable:可避免髒讀、不可重複讀、虛讀情況的發生。(序列化)(序列化)

repeatable read:可避免髒讀、不可重複讀情況的發生。(可重複讀)

read committed:可避免髒讀情況發生(讀已提交)。

read uncommitted:最低級別,以上情況均無法保證。(讀未提交)

有關隔離級別的幾種方法:

set transaction isolation level 設定事務隔離級別

select @@tx_isolation    查詢當前事務隔離級別

11 java 王少飛 response物件小節一

response物件 簡介web伺服器收到客戶端的http請求,會針對每一次請求,分別建立乙個用於代表請求的request物件 和代表響應的response物件。request和response物件即然代表請求和響應,那我們要獲取客戶機提交過來的資料,只需要找request物件就行了。要向客戶機輸出...

黑馬程式設計師 11java基礎字串

asp.net android ios開發 net培訓 期待與您交流!字串舉例 string s1 abc string s2 new string abc s1與s2的區別 s1在記憶體中有乙個物件,s2在記憶體中有兩個物件。string類用於描述字串事物,那麼就提供了很多方法對字串進行操作。常見...

《組合語言》 王爽 實驗11

題 編寫乙個子程式,將包含任意字元,以0結尾的字串中的小寫字母轉變成大寫字母,描述如下。名稱 letterc 功能 將以0結尾的字串中的小寫字母轉變成大寫字母。引數 ds si指向字串首位址。如題,任意字元,就得考慮一些其他字元,這就需要劃分乙個範圍,就是取出的字元應該在小寫字母的ascii碼範圍內...