jdbc技术三层优化深入

jdbc技术其实就是三层,获取连接,进行cbjc操作,关闭连接;
其实,对这三个老古董,我们都有进行相应的优化,
对应的技术分别是:连接池,DBUtils,装饰者设计模式+连接池;
连接池在于先存再取,中间有一点,就是linkedlist类型的pool用的是静态私有变量,
于是我去了解了下静态变量的特点:Static变量在多次被调用时,其值不改变,这正是其区别于动态变量最大的区别和作用;这样,私有但不给getset方法于是安全且只能内部访问;
静态于是每次调用连接池那连接时不会再初始化,而是只第一次创建连接,性能大大提高,完美!!!
DBUtils不需要说什么,显而易见,Apache对操作进行封装,大大简化了代码冗余,就是注意它是基于连接池的,所以一定要导c3p0以及dbutils两个jar包;
装饰者设计模式+连接池在于优化关闭结果集,将连接归还到连接池而非销毁,否则又得创建,多做无意义之事;这里重点在于对connection的close方法通过装饰者设计模式进行增强,于是就有了扩展,其实我们常见的方法增强有四种途径,
jdbc技术三层优化深入
关于装饰者具体,感觉这才是重点,另开一页去说;
具体

public class MyConnection implements Connection{
 
	private Connection conn;
	private List<Connection> list;
 
	public MyConnection(Connection conn,List<Connection> list) {
		this.conn = conn;
		this.list = list;
	}
 
 
	@Override
	public void close() throws SQLException {
		list.add(conn);
	}
     ...
}
 
连接池的getConnection方法:
	@Override
	// 获得连接的方法:
	public Connection getConnection() throws SQLException {
		if(list.size() <= 0){
			for(int i=1;i<=3;i++){
				Connection conn = JDBCUtils.getConnection();
				list.add(conn);
			}	
		}
		Connection conn = list.remove(0);
		MyConnection myConn = new MyConnection(conn, list);
		return myConn;
	}