代理模式之静态代理---数据库连接池对象实现原理
众所周知,数据库在建立链接的时候是很耗费时间的,如果每次操作数据库都要重新建立一下链接,这样对系统的性能就会造成影响。
所谓数据库连接池就是在服务器启动时已经建立好一定数量的数据库链接对象,用的时候只需要在池里面拿就行了,而关闭的时候就是把拿出来的链接对象重新放入池中。
其实说白了就是在服务器启动的时候就已经建立好一系列的数据库链接对象,并把这些对象放入一个容器里。
1.首先实现自己的数据源:
2.建立获取数据库链接对象的帮助类/** * 创建链接(使用代理类MyConnection的Connection) * * @return * @throws SQLException */private Connection createConnection() throws SQLException {// return DriverManager.getConnection(url, user, password);Connection realConn = DriverManager.getConnection(url, user, password);MyConnection myConn = new MyConnection(realConn, this);return myConn;}
到这里为止我们就可以使用Connection的close方法去关闭链接对象,并且能够起到与数据源的free方法释放链接对象一致的效果。