Jdbc 事务

时间:2024-09-10 14:35:32
package com.j1;

import java.sql.Connection;
import java.sql.SQLException; import com.mysql.jdbc.PreparedStatement; public class JdbcTest1 { public void test1(){
Connection conn=null;
PreparedStatement smt=null;
try {
conn = JdbcUnit.getConnection();
conn.setAutoCommit(false);//开启事物
smt= (PreparedStatement) conn.prepareStatement("");
smt.executeUpdate();
conn.prepareStatement("");
conn.commit();//提交事物
} catch (Exception e) {
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}finally{
//释放资源
JdbcUnit.release(null, smt, conn);
} } } //公用类 package com.j1; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle; import org.apache.taglibs.standard.tag.common.fmt.BundleSupport; public class JdbcUnit {
private static String clazzName=null;
private static String url=null;
private static String username=null;
private static String password=null; //读取配置文件
static{ ResourceBundle bundle=ResourceBundle.getBundle("dbinfo");
clazzName=bundle.getString("clazzName");
url=bundle.getString("url");
username=bundle.getString("username");
password=bundle.getString("password");
}
public static Connection getConnection(){ loadDriver();
try {
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
} }
private static void loadDriver() {
try {
Class.forName(clazzName); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
public static void release(ResultSet rs, Statement stmt, Connection conn){ if(rs!=null){
try {
rs.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rs=null;
}
if(stmt!=null){
try {
stmt.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
stmt=null;
}
if(conn!=null){
try {
conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn=null;
} }
} /** 事务为同一个Connnection对象
try catch时尽量抓到最大Exception */