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"); } }
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(); } } }
WE ARE ALL IN THE GUTTER, BUT SOME OF US ARE LOOKING AT THE STARS