day07 c3p0連接池
阿新 • • 發佈:2017-08-16
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 {View Codepublic 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"); } @Overridepublic 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"); } }
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連接池