jdbc 學習總結四之事物控制

2021-07-22 16:18:48 字數 1395 閱讀 6267

事物是使用者定義的乙個操作序列,這些操作要不不做,要不全做。jdbc預設設定為自動提交事物,即每個語句執行完畢之後自動提交。每個語句都隱含乙個commit。

我們知道 jdbc中 connection提供了auto-commit這個屬性來控制事物,但是必須建立在使用乙個connection的情況下,這樣我們的邏輯層**和資料層**只能寫在一起,**會有很多冗餘,為了解決這個問題,我們可以在工具類中使用threadlocal 來控制保持同乙個connection ,threadlocal是thread的乙個區域性變數,將connection建立變數副本,大致原理 是將connection作為value將當前執行緒作為key,存放在hashmap中。

private static threadlocalthreadlocal = new threadlocal();

public static connection getconnection() catch (sqlexception e) 

threadlocal.set(connection);

} return connection;

}

/**

* 模擬 業務邏輯層

* 方法名稱:

* 方法說明:

* @throws sqlexception

* @autho zx

*/@test

public void test1() throws sqlexception

test3();

cn.commit();

} catch (exception e)

cn.close(); }

/*** 模擬 資料層

* 方法名稱:

* 方法說明:

* @throws sqlexception

* @autho zx

*/public void test2() throws sqlexception

/*** 模擬資料層

* 方法名稱:

* 方法說明:

* @throws sqlexception

* @autho zx

*/public void test3() throws sqlexception

test1 -- connectioncom.mysql.jdbc.jdbc4connection@55c9be00

test2 -- connection :com.mysql.jdbc.jdbc4connection@55c9be00

test3 -- connection :com.mysql.jdbc.jdbc4connection@55c9be00

JDBC學習總結

四 屬性 乙個元素的開始標誌中的名稱 值對 所有的屬性值必須位於單引號或雙引號中。每乙個元素的屬性不允許出現超過一次。開始標誌內,類似賦值語句 如 五 注釋 注釋可以出現在文件的任何位置。但不建議放在宣告前面,部分瀏覽器會報錯 注釋以 結束。注釋內不能包含雙連字元 除此之外,注釋可以包含任何內容。注...

JDBC學習總結

pl sql基礎語法入門 點我傳送 jdbc 使用driver介面實現資料庫的連線 點我傳送 jdbc 使用drivermanager實現資料庫的連線 點我傳送 jdbc 使用 statement 執行更新操作 基於oracle資料庫 點我傳送 jdbc 使用resultset 執行查詢操作 基於o...

uCOS II 之事件控制塊學習

1940 一.事件控制塊ecb資料結構 typedef struct os event 二 關鍵演算法 1 將乙個任務插入到等待事件的任務列表中 當呼叫函式os eventtaskwait 使乙個任務進入等待某事件發生時,需要此演算法,從而將任務插入到等待事件的任務列表中。pevent oseven...