一、編譯預處理
- 我們直接舉一個例子
package com.bjpowernode.java_learning;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class D139_1_CompileProcess {
public static void main(String[] args) {
Connection con = null;
PreparedStatement ps;
ResultSet rs = null;
try {
Class.forName("com.hxtt.sql.access.AccessDriver");
String URL = "jdbc:Access:///e:xsgl.mdb";
con = DriverManager.getConnection(URL);
}catch(Exception e) {
}
try {
String update = "update tb_record set name=? where ID = ?";
ps = con.prepareStatement(update);
ps.setString(1,"項羽");
ps.setInt(2,4);
for(int i=0;i<10;i++) {
ps.setInt(2, i);
ps.setString(1, String.valueOf((char)(65+i)));
int rowCount = ps.executeUpdate();
}
ps.close();
con.close();
}catch(Exception e) {
}
}
}
- 通過回圈來給?處定義文字來進行升級操作,
二、事務處理
1.資料錯誤分類
- (1)臟讀(一個事務修改了某一行資料而未提交,另一事務讀取了該行資料,假如前一個事務發生了回退,則后一個事務將得到一個無效的值,
- (2)不可重復讀
- (3)錯誤讀
2.資料庫事務具有的特征
- 原子性(Atomic)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)
3.常用事務處理方法
| 型別 | 隔離級別 | 含義 |
|---|---|---|
| static int | TRANSACTION-NONE | 不支持事務 |
| static int | TRANSACTION-READ-COMMITED | 臟讀,不可重復讀和錯誤讀取都是允許的 |
| static int | TRANSACTION-READ-UNCOMMITED | 禁止臟讀,不可重復讀和錯誤讀取都是允許的 |
| static int | TRANSACTION-REPEATABLE-READ | 事務保證能夠再次讀取相同的資料而不會失敗,錯誤讀取是允許的 |
| static int | TRANSACTION-SERIALIZABLE | 禁止臟讀,不可重復讀和錯誤讀取 |
- 用con.setTransactionIsolation(Connection.Isolationlevel);進行事務隔離級別的設定,Isolation_level取值即為表中5個常量,
- 使用Connection中的三個方法來完成基本的事務管理,
- (1)setAutoCommit(boolean true/false):設定自動提交屬性AutoCommit,默認為true.
- (2)rollback():回滾事務
- (3)commit():事務提交,
- 事務中可以有多個任務,一旦失敗了,可以不回退,可以使用保存點(savepoint)來控制回滾的數量,所謂保存點,就是對事物的某些子任務設定符號標識,用來為回滾操作提供位置指示
- 關于保存點的方法有以下三個:(1)setSavepoint("保存點名稱"):在某子任務前設定保存點;(2)releaseSavepoint("保存點名稱"):釋放指定的保存點;(3)rollback("保存點名稱"):指示事務回滾到指定的保存點,
三、原始碼:
- D139_1_CompileProcess.java
- D138_2_PreparedStatementDelete.java
- https://github.com/ruigege66/Java/blob/master/D139_1_CompileProcess.java
- https://github.com/ruigege66/Java/blob/master/D138_2_PreparedStatementDelete.java
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客園:https://www.cnblogs.com/ruigege0000/
- 歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/78406.html
標籤:Java
上一篇:學習第29天
