hibernate--异常和c3p0连接池

事务异常处理

 //关于事务回滚问题
    @Test
    public void  saveTest(){
        Customer customer = new Customer("文丑", "吃喝");
        //1.使用工具获取Session
        Session session = null;
        Transaction tx = null;
        try {
            session = HibernateUtils.getSession();
            tx = session.beginTransaction();
            session.save(customer);
            tx.commit();    //事务提交
        }catch (Exception e){
            tx.rollback();   //事务回滚
        }finally {
            session.close();
        }
    }

C3P0连接池

  1.导入依赖

 <!-- 配置hibernate的c3p0数据库连接池 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>3.6.10.Final</version>
        </dependency>

  2.在hibernate.cmd.xml文件配置连接池

     <!-- c3p0的配置 -->
        <!-- hibernate.connection.provider_class使用c3p0数据库连接池的一个配置 -->
        <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
        <!--当具体连接不够用时,申请连接的个数  -->
        <property name="hibernate.c3p0.acquire_increment">20</property>
        <!-- 设置多久扫描一次连接是否超时 -->
        <property name="hibernate.c3p0.idle_test_period">2000</property>
        <!-- 指定连接池最大里最大连接数 -->
        <property name="hibernate.c3p0.max_size">20</property>
        <!-- 指定连接池最大缓存多少个statements对象 -->
        <property name="hibernate.c3p0.max_statements">10</property>
        <!-- 指定连接池最大里最小连接数 -->
        <property name="hibernate.c3p0.min_size">5</property>
        <!-- 指定连接池连接的超时时长 -->
        <property name="hibernate.c3p0.timeout">2000</property>

  3.获取Connection测试

//获取Connection对象,测试
    @Test
    public void  saveTest(){
        //1.使用工具获取Session
        Session s= HibernateUtils.getSession();
        s.doWork(new Work() {
            public void execute(Connection connection) throws SQLException {
                System.out.println(connection);
            }
        });
        s.close();
    }

  测试结果:com.mchange.v2.c3p0.impl.NewProxyConnection@4a668b6e

猜你喜欢

转载自www.cnblogs.com/jasonjson/p/12426850.html