3、们就来简单的模拟一下数据库连接池,在我们的例子中,我们只实现数据库连接池的一些简单的功能。如果想完全实现它,大家不妨自己试一试。首先,我们定义一个接口,将数据库连接池的功能先定义出来,如下:public interface Pool extends TimerListener{ //初始化连接池 public boolean init(); //销毁连接池 public void destory(); //取得一个连接 public Connection getConn(); //
5、blic class PoolConn{ private Connection conn; private boolean isUse; private long lastAccess; private int useCount; ……}下面的省略号省掉的是关于四个属性的一些get和set方法。我们可以看到这个类的核心就是Connection,其他的一些属性都是Connection的一些标志。可以说这个类只有在连接池这个类里有用,其他地方用不到。这时候,我们就该考虑是不是可以把这个类作为一个内部类呢?而且我们
6、把它作为一个内部类以后,可以把它定义成一个私有类,然后将它的属性公开,这样省掉了那些无谓的get和set方法。下面我们就试试看:public class ConnectPool implements Pool{ //存在Connection的数组 private PoolConn[] poolConns; //连接池的最小连接数 private int min; //连接池的最大连接数 private int max; //一个连接的最大使用次数 private in
7、t maxUseCount; //一个连接的最大空闲时间 private long maxTimeout; //同一时间的Connection最大使用个数 private int maxConns; //定时器 private Timer timer; public boolean init() { try {