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不過好像從來聽不見它響,哈哈 明天希望能早點起,明天北京工體有乙個大型的招聘會,可以去...