Jdbc 事务

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

*/

 

posted @ 2016-06-05 19:13  小啊菜鸡  阅读(193)  评论(0编辑  收藏  举报