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) { } } } }