javaweb學習26:複習JDBC事務
javaweb學習26:JDBC事務
-
事務:
-
要麼都成功,要麼都失敗;
-
ACID原則:保證資料的安全
-
事務的狀態:
開啟事務
事務提交:commit()
事務回滾:rollback()
關閉事務
轉賬:
A:1000
B:1000
結果: A(900) --100--> B(1100)
事務:
A:SQL:1000-100;
B:SQL:1000+100;
把這一組SQL放在一個事務中,要麼都成功,要麼都失敗;
-
-
Junit單元測試:
-
依賴:
<!--單元測試-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency> -
使用:
-
@Test註解只有在方法上有效,只要加了這個註解的方法,就可以直接執行!
@Test
public void test(){
System.out.println("Hello");
} -
-
-
程式碼案例:A給B轉賬:測試事務
/**
* 測試事務
*/
public class TestJDBC3 {
@Test
public void test() {
//配置資訊
String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
String username="root";
String password="root";
Connection conn =null;
try {
//1,載入驅動
Class.forName("com.mysql.jdbc.Driver");
//2,建立連線:
conn = DriverManager.getConnection(url, username, password);
//3,通知資料庫開啟事務
conn.setAutoCommit(false);//fasle是開啟
//3,編寫SQL
String sql1="update account set money=money-100 where name='A'";
conn.prepareStatement(sql1).executeUpdate();
int j=1/0; //製造錯誤
String sql2="update account set money=money+100 where name='B'";
conn.prepareStatement(sql2).executeUpdate();
conn.commit();//以上2條SQL都執行成功了, 就提交事務!
System.out.println("SQL執行成功");
} catch (Exception e) {
e.printStackTrace();
try {
//SQL執行失敗,就回滾事務
conn.rollback();
} catch (SQLException ex) {
ex.printStackTrace();
}
}finally {
try {
//6,關閉連線
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
相關推薦
javaweb學習26:複習JDBC事務
javaweb學習26:JDBC事務 事務: 要麼都成功,要麼都失敗; ACID原則:保證資料的安全
javaweb學習25:JDBC複習
javaweb學習25:JDBC複習 JDBC: 什麼是JDBC:Java連線資料庫; 需要jar包的支援: Java.sql
JavaWeb學習筆記:簡單JavaBean物件的賦值與獲取
學習JavaWeb的過程中,在遇到一些比較簡單但是屬性非常多的JavaBean物件時,賦值就會變得異常辛苦,且一不小心還容易寫錯。
學習記錄:使用JDBC連線資料庫報NullPointerException。
技術標籤:mysqljdbcjavasql資料庫 最近在學習使用JDBC的過程中遇到了一個問題:mysql資料庫驅動連線成功,資料庫連線成功,資料庫中對應查詢有資料且SQL語句沒寫錯,但報了空指標異常。
javaweb學習04:Maven環境搭建
javaweb學習04:Maven環境搭建 Maven環境搭建: 為什麼要學習maven? 在Javaweb開發中,需要使用大量的jar包,這些jar包,我們都需要手動去匯入;
javaweb學習05:IDEA中Maven的操作
javaweb學習05:IDEA中Maven的操作 IDEA中使用Maven: 啟動IDEA; 建立一個Maven專案:
javaweb學習06:IDEA構建Maven專案遇到的問題
javaweb學習06:IDEA構建Maven專案遇到的問題 Unable to import maven project:See logs for details:
javaweb學習08:Servlet原理
javaweb學習08:Servlet原理 Servlet原理: Servlet是由web伺服器(Tomcat)呼叫,web伺服器在收到瀏覽器請求之後,會:
javaweb學習09:ServletContext學習
javaweb學習09:ServletContext學習 ServletContext學習: web容器在啟動的時候,它會為每個web程式都建立一個對應的ServletContext物件,它代表了當前的web應用;
javaweb學習10:Response下載檔案
javaweb學習10:Response下載檔案 HttpServletResponse物件: web伺服器接收到客戶端的HTTP請求,會針對這個請求,分別建立一個代表請求的HttpServletRequest物件,一個代表響應的HttpServletResponse物件;
javaweb學習11:Response驗證碼實現
javaweb學習11:Response驗證碼實現 Response驗證碼實現: 驗證碼怎麼來的? 前端實現:
javaweb學習12:Response重定向
javaweb學習12:Response重定向 Response實現重定向: B一個web資源收到客戶端A請求後,B它會通知客戶端A去訪問另外一個web資源C,這個過程叫重定向;
javaweb學習13:Request應用
javaweb學習13:Request應用 HttpServletRequest: HttpServletRequest代表客戶端的請求,使用者通過HTTP協議訪問伺服器;
javaweb學習14:Cookie講解
javaweb學習14:Cookie講解 什麼是會話:使用者開啟一個瀏覽器,點選了很多超連結,訪問多個web資源,關閉瀏覽器,這個過程可以稱之為會話;
javaweb學習15:Session(重點)
javaweb學習15:Session(重點) Session: 伺服器會給每一個使用者(瀏覽器)建立一個Session物件;
javaweb學習16:JSP原理刨析
javaweb學習16:JSP原理刨析 JSP: 什麼是JSP:Java Server Pages(java伺服器端頁面);
javaweb學習17:JSP基礎語法和指令
javaweb學習17:JSP基礎語法和指令 JSP基礎語法: 任何語言都有自己的語法,Java中有;
javaweb學習18:JSP內建物件及作用域
javaweb學習18:JSP內建物件及作用域 JSP:9大內建物件 PageContext:存東西 Request:存東西
javaweb學習19:JSP, JSTL標籤
javaweb學習19:JSP, JSTL標籤 JSP標籤:3種 <jsp:include /><%--頁面轉發: http://localhost:8080/jsptag.jsp?name=張三&age=12--%><jsp:forward page=\"/jsptag2.jsp\"> <
javaweb學習20:JavaBean
javaweb學習20:JavaBean JavaBean:實體類 JavaBean有特定的寫法: 要有一個無參構造;