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