静态代理与动态代理的对比:
    静态代理,代理的是对象,而动态代理,代理的则是方法或者说是某种功能,但在工作中,常把动态代理的方法或者功能称为接口
    静态代理:
    JDBC封装——连接池

    1. dao--JDBC--database<br /> JDBC<br /> 1.导包<br /> 2.加载驱动<br /> 3.获取连接<br /> 4.创建状态参数<br /> 5.执行操作 SQL<br /> 6.关闭
    2. **问题 **<br />** 获取连接(3步) 性能很慢 连接不能重复利用----连接池**<br />** JDBC创建流程过于重复-----------------------ORM**

    连接池封装
    1.创建好多个可用连接——统一管理起来
    ArrayList connectionPool;
    2.自定义一个类型
    每一个连接 绑定 状态boolean
    创建一个新的类MyConnection 两个属性Connection 属性used
    3.提供一个方法给用户
    MyConnection mc = 连接池.getConnection();
    4.想在改变底层连接管理的方式 同时 让用户没有察觉
    Connection conn = 连接池.getConnection();

                            Connection接口        (多态)<br />            JDBC4Connection(真实)        MyConnection(自己)<br />                            存在一个属性真实对象
    
            Connection conn = DriverManager.getConnection();//父类--真实子类<br />            **Connection conn = 连接池.getConnection();//父类--自己类的对象**<br />            PrepareStatement pstat = conn.preparedStatement();<br />**静态代理模型:**![image.png](https://cdn.nlark.com/yuque/0/2021/png/12463218/1622121612898-c7655144-feca-4000-9dab-995d3e1979f6.png#clientId=u56d9b3c5-52ce-4&from=paste&height=636&id=ue3d111a5&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1271&originWidth=2160&originalType=binary&size=784360&status=done&style=none&taskId=ud9d8b494-9dae-42ff-be2b-e9356d94dd2&width=1080)<br />**动态代理模型:**![image.png](https://cdn.nlark.com/yuque/0/2021/png/12463218/1622121656678-d0f86b83-6e4c-4325-b00f-7cf6919a24c4.png#clientId=u56d9b3c5-52ce-4&from=paste&height=636&id=u61e11e78&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1271&originWidth=2160&originalType=binary&size=768741&status=done&style=none&taskId=u3e6b4e41-95ff-400f-8558-18808333e4e&width=1080)<br />**虽然还保留着Dao层,但并不是Dao层做的是,在SqlSession中调用了一个代理对象getMapper()来执行sql语句**<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/12463218/1622204233906-3546a6f4-0344-4e22-a710-a3cdc69505bb.png#clientId=u4165b57e-a5e6-4&from=paste&height=485&id=ub90e5858&margin=%5Bobject%20Object%5D&name=image.png&originHeight=969&originWidth=1562&originalType=binary&size=192813&status=done&style=none&taskId=u506c9af0-fae1-46be-99c3-f0cd7921f13&width=781)