事務,Properties,dbcp連線池

2021-10-19 23:04:41 字數 2042 閱讀 3799

preparedstatement

properties

dbcp連線池

事務是為了解決sql語句執行出問題的情況,比如張三需要給王五轉500元錢,需要完成張三的餘額減500,王五的餘額加500,sql執行完張三的更新操作後出現了異常,就不會再繼續執行sql,王五的餘額不會增加,最終的結果為張三減少五百,王五的餘額不發生改變。

使用setautocommit(false)方法開啟事務,就是將自動提交功能關閉。

使用rollback()在出現異常後回滾到開啟事務階段

使用commit()方法提交執行結果

如:

public

class

jdbc_02_transaction

catch

(exception throwables)

catch

(sqlexception e)

throwables.

printstacktrace()

;}finally

}}

使用preparedstatement可以防止sql注入問題,安全性更高。

sql注入問題:在拼接sql時,有一些sql的特殊關鍵字參與字串的拼接。會造成安全性問題

如:輸入使用者隨便,輸入密碼:a』 or 『a』 = 'a。

sql語句使用?作為佔位符

select

*from

user

where username = ? and password = ?;

使用set***(引數1,引數2)方法來為?賦值。

引數1:?的位置編號 從1 開始

引數2:?的值

使用配置檔案jdbc.properties檔案為jdbc提高需要的引數值。

使用方法:

public

class

propertiesutil

private

static properties properties = null;

public

static properties getproperties()

catch

(ioexception e)

}return properties;

}}

public

class

dbutil

public

static

void

close

(autocloseable obj)

catch

(exception e)}}

}

常用於解決高併發問題。

更快的系統響應速度:資料庫連線池在初始化過程中,往往就已經建立了若干個資料庫連線物件放到池中備用這時,連線的初始化工作已完成,對於業務請求處理而言,直接利用現有的可用連線,避免了資料庫連線初始化和釋放過程的時間,從而縮減了系統整體的響應時間

統一的連線管理,避免資料庫連線遺漏:在較為完備資料庫連線池中,可以根據預先的連線占用超時設定,強制**占用連線,從而避免了常規資料庫連線操作中可能出現的資源洩露情況

public

class

basicdatasourceutil

private

static basicdatasourceutil bdsu = null;

//注意解決高併發問題,所以單例一定是執行緒安全的

public

static basicdatasourceutil getinstance()

}}return bdsu;

}//獲取連線池

public basicdatasource getbasicdatasource()

}

public

class

jdbc_03_bdsutest

catch

(sqlexception e)

finally

}}

事務 事務併發

最近工作非常鬱悶,天天被領導盯著。主要是系統近來死鎖發生在頻率很高。最終,經過大家的共同努力,我們成功的定位並解決了問題,所以把過程中學習的知識與經驗分享一下 問題背景 系統中有乙個賬戶模組,負責管理和維護會員的各種資金及明細,對外的功能涉及資金的增加與扣減等。通過監控系統發現,當外圍系統併發訪問和...

事務 唯讀事務

b 沒有事務 b 保證了sql語句級別的讀一致性。即在一條sql語句執行期間,它只會看到執行前點的資料狀態,而不會看到執行期間資料被其他sql改變的狀態。存在的問題 比如你做乙個報表查詢,在執行完第一條sql的時候,執行第二條查詢sql,而這個之間有資料被改變了,第二條資料查詢就有可能不一致 b 唯...

事務 事務操作 事務隔離級別

事務是邏輯上的一組操作,要麼都執行,要麼都不執行。例如 銀行轉賬,a轉賬1000元給b,這個轉賬就涉及到兩個操作 將a餘額減去1000元,將b餘額加上1000元。但是外一在轉賬的過程中銀行的系統奔潰,導致a只減了,b沒有加,這樣就出錯了。事務就是要保證這兩個操作,要麼都成功,要麼都失敗。事務必須同時...