一、编译预处理
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(“保存点名称”):指示事务回滚到指定的保存点。
三、源码: