• 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
  • 相关阅读:
    day14: 生成器进阶
    day13: 迭代器和生成器
    day12:装饰器的进阶
    day11:装饰器
    day10:函数进阶
    English class 81:How Vulnerability can make our lives better?
    piano class 12
    UE4之循环
    UE4之数组
    UE4中常见的类
  • 原文地址:https://www.cnblogs.com/YKang/p/7371952.html
Copyright © 2020-2023  润新知