使用连接池创建连接
连接池技术的核心思想是:连接复用,通过建立一个数据库连接池以及一套连接使用、分配、管理策略,该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。
虚谷JDBC连接池实现类对虚谷数据库原始连接进行了封装,从而方便了数据库应用对于连接的使用(特别是对于事务处理),提高了获取数据库连接效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。连接池主要由三部分组成:连接池的建立、连接池中连接的使用管理、连接池的关闭。虚谷JDBC连接池的基本思想:数据库连接建立一个“缓冲池”。预先在“缓冲池”中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。通过设定连接池最大连接数来防止系统无尽的与数据库连接。亦可通过连接池的管理机制监视数据库的连接数量、使用情况,为系统开发、测试及性能调整提供依据。虚谷JDBC实现连接池服务所提供的接口类如下:说明:
当应用程序使用完数据库连接调用连接关闭方法时,该连接并未销毁,而是被归还给连接池等待下次继续调用。
- XuguDataSource实现javax.sql.DataSource 接口。
- XuguPooledConnection实现javax.sql.PooledConnection接口。
- XuguConnectionPoolDataSource实现javax.sql.ConnectionPoolDataSource接口。
- XuguConnectionEventListener实现javax.sql.ConnectionEventListener接口。
- XuguConnectionEvent继承自javax.sql.ConnectionEvent类。
//最小连接数
setMinIdle(int min)
//最大连接数
setMaxActive(int max)
//登录空闲时间
setLoginTimeout(int time)
//最大等待连接超时
setMaxWaitTime(long waitTime)
说明:
setLoginTimeout()和setMaxWaitTime()方法中参数单位为毫秒,其他方法中参数单位为秒。
示例: 创建一个虚谷JDBC连接池,并通过连接池获取虚谷数据库连接。
XuguConnectionPoolDataSource CPDSource = new XuguConnectionPoolDataSource();
CPDSource.setHostName(“localhost”);
CPDSource.setPort(5138);
CPDSource.setDatabaseName(“xuguNew”);
CPDSource.setUser(“SYSDBA”);
CPDSource.setPassword(“SYSDBA”);
CPDSource.setUrl("jdbc:xugu://localhost:5138/xuguNew);
CPDSource.setMaxActive(50);
CPDSource.setMinIdle(5);
CPDSource.setLoginTimeout(3000);
CPDSource.setMaxWaitTime(3000);
XuguPooledConnection Pconn = (XuguPooledConnection)CPDSource.getPooledConnection();
Connection conn = Pconn.getConnection();