Mybatis有哪些演示讀寫問題以及案例?

Mybatis有哪些演示讀寫問題以及案例?

Mybatis演示讀寫問題

一、演示髒讀

1.分別開啓兩個dos窗口 A.B

2.先查看兩個窗口的隔離級別 select @@tx_isolation;

3.設置A窗口的隔離級別爲未提交讀 set session transaction isolation level read uncommitted;

4.分別在兩個窗口開啓事務 start transaction;

5.在B窗口完成轉賬操作

update account set money = money - 1000 where name = '張森';

update account set money = money + 1000 where name = '鳳姐';

6.在A窗口查詢數據 select * from account; -- A事務讀到了B事務還沒有提交的數據;

二、演示避免髒讀,演示不可重複讀發送

1.分別開兩個窗口,A.B

2設置A窗口的隔離級別:read committed set session transaction isolation level read committed;

3.分別在兩個窗口開啓事務 start transaction;

4.在B窗口完成轉賬

update account set money = money - 1000 where name = '張森';

update account set money = money + 1000 where name = '鳳姐';

5.在A窗口進行查詢 select * from account; -- 避免髒讀.

6.在B窗口提交事務 commit;

7.在A窗口中再次查詢 select * from account; -- 轉賬成功.(不可重複讀:一個事務讀到另一個事務中已經提交的update的數據,導致多次查詢結果不一致.)

三、避免髒讀和不可重複讀,演示虛讀

1.分別開啓兩個窗口,A.B

2.設置A窗口的隔離級別:repeatable read set session transaction isolation level repeatable read;

3.分別在兩個窗口中開啓事務 start transaction;

4.在B窗口完成轉賬的操作

update account set money = money - 1000 where name = '張森';

update account set money = money + 1000 where name = '鳳姐';

5.在A窗口查詢 select * from account; -- 轉賬沒有成功:避免髒讀.

6.在B窗口提交事務 commit;

7.在A窗口再次查詢 select * from account; -- 轉賬沒有成功:避免不可重複讀.

java語言基礎篇
KuangXiang
98元0人已購詳情

四、避免虛讀

1.分別開啓兩個窗口,A.B

2.設置A窗口的隔離級別:repeatable read set session transaction isolation level repeatable read;

3.分別在兩個窗口中開啓事務 start transaction;

4.在B窗口完成插入操作 insert into account values (null,'王老師',10000);

5.在A中進行查詢操作 select * from account; -- 沒有查詢到任何結果

6.在B窗口提交事務 commit; -- A窗口馬上就會顯示數據

轉賬案例

(一)
步驟分析

創建一個頁面

導入JDBC相關jar包和工具類

創建包結構

提交到Servlet->Service->Dao

頁面的跳轉

Mybatis有哪些演示讀寫問題以及案例?

(二)

1,事務管理分析

原始處理方式,在service層開啓事務,然後操作表。

Mybatis有哪些演示讀寫問題以及案例?

(service層)

2.把Connection對象綁定在當前線程

Mybatis有哪些演示讀寫問題以及案例?

(JDBCUtils改造)
Mybatis有哪些演示讀寫問題以及案例?

(service層代碼)

Mybatis有哪些演示讀寫問題以及案例?

(Dao層代碼)

3.利用DbUtils實現

1、沒有事務管理

Mybatis有哪些演示讀寫問題以及案例?

2、有事務管理

Mybatis有哪些演示讀寫問題以及案例?

(service層)

有需要更多Java架構師資料的朋友可以私信我哦,資料見下圖

END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章