静态代理与动态代理的对比:
静态代理,代理的是对象,而动态代理,代理的则是方法或者说是某种功能,但在工作中,常把动态代理的方法或者功能称为接口
静态代理:
JDBC封装——连接池
dao--JDBC--database<br /> JDBC<br /> 1.导包<br /> 2.加载驱动<br /> 3.获取连接<br /> 4.创建状态参数<br /> 5.执行操作 SQL<br /> 6.关闭**问题 **<br />** 获取连接(3步) 性能很慢 连接不能重复利用----连接池**<br />** JDBC创建流程过于重复-----------------------ORM**
连接池封装
1.创建好多个可用连接——统一管理起来
ArrayList
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 />**静态代理模型:**<br />**动态代理模型:**<br />**虽然还保留着Dao层,但并不是Dao层做的是,在SqlSession中调用了一个代理对象getMapper()来执行sql语句**<br />
