day07 c3p0连接池

Posted 征程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day07 c3p0连接池相关的知识,希望对你有一定的参考价值。

使用junit单元测试
要求:
1.方法是public void xxx(){}
2.在方法上添加 @Test
3.在@Test 按下 ctrl+1(快速锁定错误)
4.在方法上右键 run as -->junit 就可以执行方法了.


案例2-自定义一个连接池(理解思想)

装饰者模式:★★★
使用步骤:
1.装饰者和被装饰者实现同一个接口或者继承同一个类
2.装饰者中要有被装饰者的引用
3.对需要增强的方法进行加强
4.对不需要加强的方法调用原来方法

技术分享
package wrap;

public interface Car {

    public  abstract void start();
    public abstract void stop();
}


//============另一文件====================
package wrap;

public class CarWrap implements Car{

    private Car car;

    public CarWrap(Car car) {
        this.car = car;
    }
    @Override
    public void start() {
        System.out.println("accelerate....");
        car.start();
    }

    @Override
    public void stop() {
         car.stop();
    }

}


//============另一文件====================
package wrap;

public class QQ implements Car{

    @Override
    public void start() {
        System.out.println("QQ run");
    }

    @Override
    public void stop() {
        System.out.println("QQ stop");        
    }
    
}



//============另一文件====================

package wrap;

public class Tesla implements Car{

    
    public static void main(String[] args) {
        
        QQ q = new QQ();
        q.start();
        q.stop();
        
        System.out.println("=============================");
        CarWrap carWrap = new CarWrap(new Tesla());
        carWrap.start();
        carWrap.stop();
        
        System.out.println("++++++++++++++++++++++++");
        CarWrap c = new CarWrap(q);
        c.start();
        c.stop();
    }
    
    @Override
    public void start() {
        System.out.println("Tesla start");
    }

    @Override
    public void stop() {
        System.out.println("Tesla stop");
    }

}
View Code

C3P0:(★)
使用步骤:
  1.导入jar包(c3p0-0.9.1.2.jar)
  2.使用api
    a.硬编码(不推荐)
      new ComboPooledDataSource()
    b.配置文件
      配置文件的名称:c3p0.properties 或者 c3p0-config.xml
      配置文件的路径:src下

    编码只需要一句话,其余同dbcp
    ComboPooledDataSource ds = new ComboPooledDataSource();
    new ComboPooledDataSource(String configName)//使用命名的配置 若配置的名字找不到,使用默认的配置

技术分享
package c3p0;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3p0Demo {

    public static void main(String[] args) {
        ComboPooledDataSource ds = new ComboPooledDataSource();
        
        QueryRunner qr = new QueryRunner(ds);
        
        String sql = "SELECT * FROM sort";
        try {
            Object[] res = qr.query(sql, new ArrayHandler());
            
            for (Object obj : res) {
                System.out.print(obj + "  ");
            }
            
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
    }
    
}
View Code

 


























以上是关于day07 c3p0连接池的主要内容,如果未能解决你的问题,请参考以下文章

C3P0连接池的使用

C3P0连接池的使用

C3P0连接池操作数据库

C3P0连接池工具类实现步骤及方法

c3p0连接池 & JdbcUtils

c3p0数据库连接池管理