java的jdbc数据库连接池实现方法

java的jdbc数据库连接池实现方法

ID:34723846

大小:122.18 KB

页数:10页

时间:2019-03-10

java的jdbc数据库连接池实现方法_第1页
java的jdbc数据库连接池实现方法_第2页
java的jdbc数据库连接池实现方法_第3页
java的jdbc数据库连接池实现方法_第4页
java的jdbc数据库连接池实现方法_第5页
资源描述:

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

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是线程安全的,多个

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

4、ction个数。4.当数据库连接池中的connection个数在某一个特别的时间变得很大,但是以后很长时间只用其中一小部分,应该可以自动将多余的connection关闭掉。5.如果可能,应该提供debug信息报告没有关闭的newConnection。如果要newConnection就可以直接从数据库连接池中返回Connection,可以这样写(Mediatorpattern)(以下代码中使用了中文全角空格):1.public class EasyConnection implements java.sql.Connectio

5、n{ 2.private Connection m_delegate = null; 3.public EasyConnection(){ 4.m_delegate = getConnectionFromPool(); 5.} 6. public void close(){ 7.putConnectionBackToPool(m_delegate); 8.} 1.public PreparedStatement prepareStatement(String sql) throws SQLException{ 2.m_del

6、egate.prepareStatement(sql); 3.} 4.//...... other method 5.} 看来并不难。不过不建议这种写法,因为应该尽量避免使用JavaInterface,关于JavaInterface的缺点我另外再写文章讨论。大家关注的是ConnectionPool的实现方法。下面给出一种实现方法。1.import java.sql.*; 2.import java.lang.reflect.*; 3.import java.util.*; 4.import java.io.*; 5. 6.p

7、ublic class SimpleConnetionPool { 7.private static LinkedList m_notUsedConnection = new LinkedList(); 8.private static HashSet m_usedUsedConnection = new HashSet(); 9.private static String m_url = ""; 10.private static String m_user = ""; 11.private static String m

8、_password = ""; 12.static final boolean DEBUG = true; 13.static private long m_lastClearClosedConnection = System.currentTimeMillis(); 14.public static long CHECK_CLOSED_CONNECTION_TIME = 4 * 60 * 60 * 1000; //4 hours 15. 16.static { 17.initDriver(); 18.} 19. 20.pr

9、ivate 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. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。