ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:17.39KB ,
资源ID:2858071      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2858071.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java连接池的实现.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java连接池的实现.docx

1、Java连接池的实现连接池的实现陌生知识掌握栈(stack):下面信息来自stack百科栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈,删除则称为退栈。 栈也称为后进先出表。(详细内容参考JDK

2、1.5API)1、思路 构造一个高内聚的连接池类 我们已经学过,并熟练掌握了几种java应用访问关系数据库的技术细节。现将几种实现简述如下: a)、jdbc-odbc桥连接 b)、纯jdbc连接 c)、基于属性文件的配置,获取数据源连接对象。 d)、基于容器获取连接池。(基于tomcat容器) 2、实现的步骤 (1)、建立ConnManagerPool类 (2)、类参数:a)、定义使用SQL server 2005数据库驱动的连接参数; b)、定义数据库连接池的保存栈;(例如:private int minConn = 0; /最少连接数private int maxConn = 10; /最

3、大连接数private int connAmount = 0; /当前连接数 private Stack connStack = new Stack();) /保存连接的栈c)、定义全局共享一个数据库连接类;(例如:private static ConnManagerPool instance;) (3)、类操作: a)、构造方法,初始化自动生成最少数量的连接Connection; b)、获取全局共享一个数据库连接类实例; c)、内部使用方法,生成一个数据库连接对象并返回; d)、通过类对象返回的数据库连接; e)、释放数据库连接,并压回连接池。3、代码实现部分代码实现部分(代码仅供参考,帮助

4、细化思路,不要盲目去记忆代码) 1 package common; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.sql.Statement; 9 import java.util.Stack; 10 11 /* 12 * 驱动:Microsoft SQLServer 2005 的驱动 13

5、 * 需放在本web工程的lib中 14 * 15 * 使用说明:使用本类请不要New ConnManagerPool; 16 * 要获得本类的对象请使用函数getInstance(); 17 * 实例:ConnManagerPool conn; 18 * conn = ConnManagerPool.getInstance(); 19 */ 20 public class ConnManagerPool 21 22 /* 23 * 使用SQL server 2005数据库驱动的连接参数 24 */ 25 final String driver = com.microsoft.sqlserve

6、r.jdbc.SQLServerDriver; 26 final String url = jdbc:sqlserver:/localhost:1433;DatabaseName=MarketManager; 27 final String user=sa; 28 final String password=sa; 29 30 /* 31 * 数据库连接池的保存栈 32 */ 33 private int minConn = 0; 34 private int maxConn = 10; 35 private int connAmount = 0; 36 private Stack connS

7、tack = new Stack(); 37 38 /* 39 * 全局共享一个数据库连接类 40 */ 41 private static ConnManagerPool instance; 42 public static ConnManagerPool getInstance() 43 if( instance = null ) 44 instance = new ConnManagerPool(); 45 return instance; 46 47 48 /* 49 * 构造函数:初始化自动生成最少数量的连接Connection; 50 */ 51 public ConnManage

8、rPool() 52 for(int i = 0; i minConn; i+ ) 53 connStack.push( newConnection() ); 54 55 56 /* 57 * 功能:内部使用,生成一个数据库连接并返回 58 *if success return default connection, failed return null; 59 */ 60 public Connection newConnection() 61 Connection conn = null; 62 try 63 Class.forName( driver ); 64 conn= Driver

9、Manager.getConnection(url,user,password); 65 connAmount+; 66 catch (ClassNotFoundException e) 67 conn = null; 68 catch (SQLException e) 69 conn = null; 70 71 return conn; 72 73 74 /* 75 * 功能:通过类对象返回的数据库连接 76 *if success return default connection, failed return null; 77 */ 78 public Connection getCon

10、nection() 79 Connection conn = null; 80 if( !connStack.isEmpty() ) 81 conn = connStack.pop(); 82 else if( connAmount maxConn ) 83 conn = newConnection(); 84 else 85 try 86 wait( 100000 ); 87 return getConnection(); 88 catch ( InterruptedException e) 89 conn = null; 90 91 92 return conn; 93 94 95 /*

11、96 * 功能:释放数据库连接,并压回连接池 97 */ 98 public void freeConnection( Connection conn ) 99 try100 if( conn != null )101 102 connStack.push( conn );103 notifyAll();104 105 catch( Exception e)106 107 108 109 110 /*111 * 功能:Statement,通过类名调用112 * if success return a Statement, failed return null;113 */114 public

12、Statement getStatement( Connection conn ) 115 Statement stmt = null; 116 try 117 if( conn != null ) 118 stmt = conn.createStatement();119 120 catch ( SQLException e ) 121 stmt = null;122 123 124 return stmt;125 126 127 /*128 * 功能:PreparedStatement,通过类名调用129 * if success return a PreparedStatement, f

13、ailed return null;130 */131 public PreparedStatement getPreparedStatement(Connection conn,String sql) 132 PreparedStatement pstmt = null; 133 try 134 if( conn != null ) 135 pstmt = conn.prepareStatement(sql);136 137 catch ( SQLException e ) 138 pstmt = null;139 140 return pstmt;141 142 143 /*144 * 功

14、能:通过SQL语句,返回结果集,通过类名调用145 * if success return data of database, failed return null;146 */147 public ResultSet executeQuery( Statement stmt, String sql ) 148 ResultSet rs = null;149 try 150 if(stmt != null) 151 rs = stmt.executeQuery(sql);152 153 catch (SQLException e) 154 rs = null;155 156 return rs;157 158 159 public ResultSet executeQuery( PreparedStatement pstmt) 160 ResultSet rs = null;161 try 162 if(pstmt != null) 163 rs = pstmt.executeQuery();164 165 catch (SQLException e) 166 rs = null;167 168 return rs;169 170

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1