Java的JDBC数据库连接池实现方法.doc

Java的JDBC数据库连接池实现方法.doc

ID:51690427

大小:55.00 KB

页数:10页

时间:2020-03-15

Java的JDBC数据库连接池实现方法.doc_第1页
Java的JDBC数据库连接池实现方法.doc_第2页
Java的JDBC数据库连接池实现方法.doc_第3页
Java的JDBC数据库连接池实现方法.doc_第4页
Java的JDBC数据库连接池实现方法.doc_第5页
资源描述:

《Java的JDBC数据库连接池实现方法.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java的JDBC数据库连接池实现方法2009-07-1713:32BBT_soft百度空间 我要评论(1) 字号:T 

2、 T虽然J2EE程序员一般都有现成的应用服务器所带的JDBC数据库连接池,不过对于开发一般的JavaApplication、Applet或者JSP、velocity时,我们可用的JDBC数据库连接池并不多,并且一般性能都不好。AD:Java程序员都很羡慕WindowsADO,只需要newConnection就可以直接从数据库连接池中返回Connection。并且ADOConnection是线程安全的,多个线程可以共用一个Connection,所以ASP程序一般都

3、把getConnection放在Global.asa文件中,在IIS启动时建立数据库连接。ADO的Connection和Result都有很好的缓冲,并且很容易使用。其实我们可以自己写一个JDBC数据库连接池。写JDBCconnectionpool的注意事项有:1.有一个简单的函数从连接池中得到一个Connection。2.close函数必须将connection放回数据库连接池。3.当数据库连接池中没有空闲的connection,数据库连接池必须能够自动增加connection个数。4.当数据库连接池中的connection个数在某一个特别的时间变得很大,但是以后很长时间只用其中一

4、小部分,应该可以自动将多余的connection关闭掉。5.如果可能,应该提供debug信息报告没有关闭的newConnection。如果要newConnection就可以直接从数据库连接池中返回Connection,可以这样写(Mediatorpattern)(以下代码中使用了中文全角空格):1.public class EasyConnection implements java.sql.Connection{ 2.private Connection m_delegate = null; 3.public EasyConnection(){ 4.m_delegate = ge

5、tConnectionFromPool(); 5.} 6. public void close(){ 7.putConnectionBackToPool(m_delegate); 8.} 1.public PreparedStatement prepareStatement(String sql) throws SQLException{ 2.m_delegate.prepareStatement(sql); 3.} 4.//...... other method 5.} 看来并不难。不过不建议这种写法,因为应该尽量避免使用JavaInterface,关于JavaInterface

6、的缺点我另外再写文章讨论。大家关注的是ConnectionPool的实现方法。下面给出一种实现方法。1.import java.sql.*; 2.import java.lang.reflect.*; 3.import java.util.*; 4.import java.io.*; 5. 6.public class SimpleConnetionPool { 7.private static LinkedList m_notUsedConnection = new LinkedList(); 8.private static HashSet m_usedUsedConnecti

7、on = new HashSet(); 9.private static String m_url = ""; 10.private static String m_user = ""; 11.private static String m_password = ""; 12.static final boolean DEBUG = true; 13.static private long m_lastClearClosedConnection = System.currentTimeMillis(); 14.public static long CHECK_CLOSED_CONN

8、ECTION_TIME = 4 * 60 * 60 * 1000; //4 hours 15. 16.static { 17.initDriver(); 18.} 19. 20.private SimpleConnetionPool() { 21.} 22. 23.private static void initDriver() { 24.Driver driver = null; 25.//load mysql driver 26.try { 27.driver =

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。