JdbcUtils底层使用了c3p0连接池来获取Connection对象,以及开启和关闭事务。
前期准备:
(1)导入mchange-commons-0.2.jar、c3p0-0.9.2-pre1.jar、mysql-connector-java-5.1.39-bin.jar
(2)配置c3p0-config.xml配置文件。
Connection getConnection():从c3p0连接池获取Connection对象,所以需要提供c3p0-config.xml配置文件;
beginTransaction():为当前线程开启事务;
commitTransaction():提交当前线程的事务;
rollbackTransaction():回滚当前线程的事务;
releaseConnection(Connection):如果参数连接对象不是当前事务的连接对象,那么关闭它,否则什么都不做;
package cn.baldprogrammer.test;
import java.sql.SQLException;
import org.junit.Test;
import com.mysql.jdbc.Connection;
import cn.jdbc.JdbcUtils;
public class JdbcUtilsTest {
@Test
public void testGetConnection() throws SQLException{
Connection con=JdbcUtils.getConnection();
System.out.println(con);
JdbcUtils.releaseConnection(con);
System.out.println(con.isClosed());
}
@Test
public void testTransaction(){
try{
JdbcUtils.beginTransaction();//开启事务
//可对数据库进行多次操作
JdbcUtils.commitTransaction();//提交事务
}catch(Exception e){
try {
JdbcUtils.rollbackTransaction();//回滚事务
} catch (SQLException e1) {
}
}
}
}