1. 程式人生 > >day07 c3p0連接池

day07 c3p0連接池

ray trace c3p0 +++ star hid -- ef7 ati

使用junit單元測試
要求:
1.方法是public void xxx(){}
2.在方法上添加 @Test
[email protected] 按下 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連接池