JDBC 数据库连接池 小结

原文:http://www.cnblogs.com/lihuiyy/archive/2012/02/14/2351768.html

当对数据库的访问不是很频繁时,可以在每次访问数据库时建立一个连接,用完之后关闭。但是,对于一个复杂的数据库应用,频繁的建立、关闭连接,会极大的减低系统性能,造成瓶颈。所以可以使用数据库连接池来达到连接资源的共享,使得对于数据库的连接可以使高效、安全的复用。

1.通过一个小测试来了解数据库连接池的原理

(1)创建一个属性文件  dbpool.properties

1 driverClassName=com.mysql.jdbc.Driver
2 username=root
3 password=iloveyou
4 url=jdbc:mysql://localhost:3306/student
5 poolSize=5

(2)创建实现数据库连接池的类文件  ConnectionPool.java

(3)创建一个使用连接池访问数据库的类文件  ConnectionPoolTest.java

2.在开发具体项目时没有必要自己编写数据库连接池,现在已经有很多现成的组件。许多服务器已经内置了数据库连接池,如Tomcat服务器、Jboss服务器和WebLogic服务器等。我自己根据书上的例子,配置了一下Tomcat服务器。配置步骤如下:

(1)配置Tomcat根目录下的 \conf 中的文件 context.xml 如下:

复制代码
复制代码
1 <!--Resource 设置数据库连接池的核心-->
2     <!--属性 name 数据源的名字       属性 auth 表示验证方式     type 资源的类型       -->
3     <Resource name="jdbc/DBWater" auth="Container" Type="javax.sql.DataSource"
4               maxActive="100" maxIdle="30" maxWait="10000"
5               username="root" password="*******"
6               driverClassName="com.mysql.jdbc.Driver"
7               url="jdbc:mysql://localhost:3306/student"/>
复制代码
复制代码

将这段代码添加到<context></context>之间

(2)修改项目工程目录下 WebRoot/WEB-INF/web.xml 文件:

复制代码
复制代码
 1 <resource-ref>
 2   <!-- 描述信息 -->
 3   <description>Connection Pool</description>
 4   <!-- 数据源名字 和上面配置中数据源的名字一致-->
 5   <res-ref-name>jdbc/DBWater</res-ref-name>
 6   <!-- 数据源类型 -->
 7   <res-type>javax.sql.DataSource</res-type>
 8   <res-auth>Container</res-auth>
 9   <res-sharing-scope>Shareable</res-sharing-scope>
10 </resource-ref>
复制代码
复制代码

下面就可以进行连接池使用了。比如,这里,创建一个DBWater.java文件:

那么在jsp文件中调用该类:

复制代码
复制代码
 1 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
 2 <%@page import="com.lihui.dbwater.DBWater"%>
 3 
 4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 5 <html>
 6   <head>
 7     <title>连接池测试</title>
 8   </head>
 9   
10   <body>
11   <%
12       DBWater rs = new DBWater();
13       rs.init();
14 %>
15   id:<%=rs.getUserId() %>
16   name:<%=rs.getName() %>
17   psd:<%=rs.getpassword() %>
18   </body>
19 </html>
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值