JDBC事务运用实例:
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Transaction {
/**
* @Title: main
* @Description:
* @param:
* @return void
* @user: wangzg
* @Date:2014-7-7
* @throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement pstm = null;
try {
conn = getConnection();
System.out.println("事务提交模式:"+conn.getAutoCommit());
System.out.println("事务隔离级别:"+conn.getTransactionIsolation());
if(conn.getTransactionIsolation() == conn.TRANSACTION_NONE){
System.out.println("事务隔离级别:TRANSACTION_NONE");
}else if(conn.getTransactionIsolation() == conn.TRANSACTION_READ_COMMITTED){
System.out.println("事务隔离级别:TRANSACTION_READ_COMMITTED");
}else if(conn.getTransactionIsolation() == conn.TRANSACTION_READ_UNCOMMITTED){
System.out.println("事务隔离级别:TRANSACTION_READ_UNCOMMITTED");
}else if(conn.getTransactionIsolation() == conn.TRANSACTION_REPEATABLE_READ){
System.out.println("事务隔离级别:TRANSACTION_REPEATABLE_READ");
}else if(conn.getTransactionIsolation() == conn.TRANSACTION_SERIALIZABLE){
System.out.println("事务隔离级别:TRANSACTION_SERIALIZABLE");
}else{
System.out.println("事务隔离级别:error");
}
conn.setAutoCommit(false);
pstm = conn.prepareStatement("insert into t_user(user_id,user_name,user_password) values(TEST_SEQUENCE.NEXTVAL,?,?)");
for(int i =0 ;i < 3;i++){
pstm.setString(1, "wzg");
pstm.setString(2, "wzg");
pstm.executeUpdate();
}
conn.commit();
pstm.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}finally{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
*
* @Title: getConnection
* @Description:
* @param:
* @return Connection
* @user: wangzg
* @Date:2014-7-7
* @throws
*/
public static Connection getConnection() throws ClassNotFoundException, SQLException{
Connection conn = null;
//加载oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
String user ="wzg";
String password = "wzg";
conn = DriverManager.getConnection(url, user, password);
return conn;
}
}