JDBC基礎和JDBC的事物

2021-10-07 04:25:35 字數 1849 閱讀 7529

開始

註冊驅動 class.forname(「com.mysql.jdbc.driver」)//mysql的註冊驅動方式

jdbc執行sql 語句的兩種方式

//方式一 這種有sql注入的風險,建議不要使用

statement stat = con.createstatement();

查詢:stat.executequery(sql語句);

修改:stat.executeupdate(sql語句);

//方式二

con.preparestatement(sql語句);//裡面的引數用佔位符』?』

例如:preparestatement ps = connection.preparestatement(「select * from student where id = ?」);

ps.setint(1,值)

void set資料型別(int 引數1,資料型別 引數2) 引數1:第幾個佔位符 引數2:替換佔位符的真實值

查詢:ps.executequery()

修改:ps.executeupdate()

結果集resultset

while(rs.next())

注:***代表資料型別。

配置檔案config.properties

driverclass=com.mysql.jdbc.driver

url=jdbc:mysql:

username=root

password=root

jdbc工具類

public

class

jdbcutils

//私有無參構造

private

static string driverclass;

private

static string url;

private

static string username;

private

static string password;

static

catch

(exception e)}/*

資料庫連線

*/public

static connection getconnection()

catch

(sqlexception e)

return con;}/*

提供釋放的資源的方法

*/public

static

void

getclose

(connection con, statement stat, resultset rs)

catch

(exception e)}if

(stat != null)

catch

(exception e)}if

(rs != null)

catch

(exception e)}}

public

static

void

close

(connection con, statement stat)

}

jdbc事物管理

事物管理使用的物件connection

開啟事物:setautocommit(boolean autocommit);引數為false,則開啟事物。

提交事物:commit();

回滾事物:rollback();//事物的回滾是出現異常時才執行,所以需要放在catch中

注:注:事務的管理需要在業務層實現,因為dao層的功能要給很多模組提供功能的支撐,而有些模組是不需要事務的。

JDBC 事物的隔離級別

在分布式的系統中,通常會有多個執行緒連線到資料庫中同時對乙個表進行操作 這裡的同時並不表示同乙個時間點,而是同時競爭cpu的資源,至於如何排程,就要看執行緒和作業系統如何進行排程了 這種情況下如果會話的事物設定不當,就會導致資料混亂,常常會出現以下三種情況 假設現在系統中有兩個會話a和b,同時對錶t...

jdbc事物,spring事物的概念以及處理

在connection類中提供了3個控制事務的方法 1 setautocommit boolean autocommit 設定是否自動提交事務 2 commit 提交事務 3 rollback 撤消事務 在jdbc api中,預設的情況為自動提交事務,也就是說,每一條對資料庫的更新的sql語句代表一...

jdbc程式設計基礎(三) jdbc的事務

事務是相關操作構成乙個完整操作單元,所有的語句都順利執行後,事務可以提交。否則,如果其中某個語句遇到錯誤,那麼事務將被回滾,就好像沒有執行過任何命令一樣。將多個命令組合成事務的主要原因是為了確保資料庫的完整性。例如,假設我們需要講錢從乙個帳號轉賬到另乙個帳戶。此時,乙個非常重要的問題是我們必須同時將...