jdbc複習第三天

2021-08-29 19:24:39 字數 2255 閱讀 4308

jdbc事務併發產生的問題和事務隔離級別

1,髒讀(dirty read),讀取到了沒有提交的資料。

2,不可重複讀(unprpeatable read),兩次讀取到了不同的資料,就是要保持在同一時間點上兩次讀取到的資料相同,不能夠使查詢資料時進行改變。

3,幻讀(phantom),在兩次查詢同一時間點資料時,資料數量發生改變,要保持在同一時間點上兩次讀取到的資料相同。

事務隔離級別

transaction_none不使用事務。

transaction_read_uncommitted 可以讀取為提交資料。

transaction_read_committed可以避免髒讀,不能夠讀取沒提交的資料,最常用的隔離級別  大部分資料庫的預設隔離級別

transaction_repeatable_read可以避免髒讀,重複讀取,

transaction_serializable可以避免髒讀,重複讀取和幻讀,(事務序列化)會降低資料庫效率

以上的五個事務隔離級別都是在connection類中定義的靜態常量,使用settransactionisolation(int level) 方法可以設定事務隔離級別。

jdbc2.0新特性

可滾動結果集(可雙向滾動),這種結果集不但可以雙向滾動,相對定位,絕對定位,並且可以修改資料資訊。

滾動特性

next(),此方法是使游標向下一條記錄移動。

previous() ,此方法可以使游標上一條記錄移動,前提前面還有記錄。

absolute(int row),可以使用此方法跳到指定的記錄位置。定位成功返回true,不成功返回false,返回值為false,則游標不會移動。

afterlast() ,游標跳到最後一條記錄之後。

beforefirst() ,游標跳到第一條記錄之前。(跳到游標初始位)

first(),游標指向第一條記錄。

last(),有彪指向最後一條記錄。

relative(int rows) ,相對定位方法,引數值可正可負,引數為正,游標從當前位置向下移動指定值,引數為負,游標從當前位置向上移動指定值。

type_forward_only ,該常量指示指標只能向前移動的 resultset 物件的型別。

type_scroll_insensitive ,該常量指示可滾動但通常不受其他的更改影響的 resultset 物件的型別。

type_scroll_sensitive ,該常量指示可滾動並且通常受其他的更改影響的 resultset 物件的型別。

要使用可滾動結果集時,要在statement建立時指定引數,才可以使用

statement st=null;

st=con.createstatement(reusltset.type_scroll_insensitive,resuleset.concur_updatable)

resultset結果集中,先使用movetoinsertrow(),將游標移到和結果集結構類似的傳沖去中

然後可以使用update***(int column,columntype value)方法來更新指定列資料,再使用insertrow() 方法插入記錄,最後將游標指回原位,movetocurrentrow() 。

能否使用可更新結果集,要看使用的資料庫驅動是否支援,還有只能用於單錶且表中有主鍵字段(可能會是聯合主鍵),不能夠有表連線,會取所有非空字段且沒有預設值。

能否使用jdbc2.0 resultset的新特性要看資料庫驅動程式是否支援。

批處理更新

statement

addbatch(string sql), 方法會在批處理快取中加入一條sql語句

executebatch() ,執行批處理快取中的所有sql語句。

preparedstatement

addbatch() 將一組引數新增到此 preparedstatement 物件的批處理命令中。

executebatch() 將一批命令提交給資料庫來執行,如果全部命令執行成功,則返回更新計數組成的陣列。

preparedstatement中使用批量更新時,要先設定好引數後使用addbatch()方法加入快取。

注意:批量更新中只能使用更新或插入語句

execute(string sql),這個方法的返回值是boolean型別,如果返回true就表示sql是乙個select語句,可以通過getresultset()獲得結果集,如果是false,sql就是dml語句或者是ddl語句。

python複習第三天

1 數字直接在 中輸入,字串用 運算可以 直接結果輸出 2 print中用可以用,分隔開 3 字母和ascii編碼之間的轉變。print chr 65 print ord a fp open r e py.txt a print 我愛羅一峰 file fp fp.close 時間輸出 import ...

複習第三天 多執行緒

並行 兩個或者兩個以上的事件,同一時刻發生 併發 兩個或者兩個以上的事件,同一時間段發生 程序 進入到記憶體中的乙個程式,好比開啟乙個360安全衛士 執行緒 是程序的乙個執行單位,負責當前程序中程式的執行,乙個程序至少有乙個執行緒,乙個程序可以有多個執行緒。public class run exte...

第三天,努力!!

第三天了,不錯不錯,基本上按自己的計畫進行著,雖然工作還是沒找到,不過也不再那麼的怕了,慢慢來吧,其實也沒太多時間了 今天早上十點才,真的覺得自己太不像話了,不過我一覺醒來就那個時候了,我的手機每天的鬧鐘是7 30不過好像從來聽不見它響,哈哈 明天希望能早點起,明天北京工體有乙個大型的招聘會,可以去...