打印本文 打印本文 关闭窗口 关闭窗口
有效发挥数据库的最大效率
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2271  更新时间:2009/4/22 23:22:19  文章录入:mintao  责任编辑:mintao
-          资源合理应用。按照JDBC中资源的从属关系,Snap-ConnectionPool不仅对Connection进行缓冲处理,对Statement也有相应的机制处理。在2.3已描述,合理运用ConnectionStatement之间的关系,可以更大限度地使用资源。所以,Snap-ConnectionPool封装了Connection资源,通过内部管理PooledConnection,为应用系统提供更多的Statement资源。

-          资源连锁管理Snap-ConnectionPool包含的三种逻辑对象,继承了JDBC中相应对象之间的从属关系。在内部管理中,也依照从属关系进行连锁管理。例如:判断一个Connection是否超时,需要根据所包含的Statement是否活跃;判断Statement也要根据ResultSet的活跃程度。

 

3.2     连接池集中管理ConnectionManager

ConnectionPoolSnap-ConnectionPool的连接池对象。在Snap-ConnectionPool内部,可以指定多个不同的连接池(ConnectionPool)为应用服务。ConnectionManager管理所有的连接池,每个连接池以不同的名称区别。通过配置文件适应不同的数据库种类。如下图所示:

通过ConnectionManager,可以同时管理多个不同的连接池,提供通一的管理界面。在应用系统中通过ConnectionManager和相关的配置文件,可以将凌乱散落在各自应用程序中的数据库配置信息(包括:数据库名、用户、密码等信息),集中在一个文件中。便于系统的维护工作。

 

3.3     连接池使用范例

2.1的标准JDBC的使用范例,改为使用连接池,结果如下:

import java.sql.*;

import net.snapbug.util.dbtool.*;

…..

 

ConnectionPool dbConn = ConnectionManager.getConnectionPool( "testOracle" );

 

Statement st = dbConn.createStatement();

ResultSet rs = st.executeQuery( “select * from demo_table” );

 

…some data source operation in here

 

rs.close();

st.close();

 

 

在例子中,Snap-ConnectionPool封装了应用对Connection的管理。只要改变JDBC获取Connection的方法,为获取连接池(ConnectionPool)(粗体部分),其他的数据操作都可以不做修改。按照这样的方式,Snap-ConnectionPool可帮助应用有效地管理数据库资源。如果应用忽视了最后资源的释放: rs.close() st.close(),连接池会通过超时(time-out)机制,自动回收。

 

4.     小结

无论是Snap-ConnectionPool还是其他的数据库连接池,都应当具备一下基本功能:

-          对源数据库资源的保护

-          充分利用发挥数据库的有效资源

-          简化应用的数据库接口,封闭资源管理。

-          对应用遗留资源的自动回收和整理,提高资源的再次利用率。

在这个前提下,应用程序才能投入更多的精力于各自的业务逻辑中。数据库资源也不再成为系统的瓶颈。

: 在网站 www.snapbug.net可免费下载Snap-ConnectionPool及更详细的文档。

 

 

上一页  [1] [2] [3] 

打印本文 打印本文 关闭窗口 关闭窗口