zoukankan      html  css  js  c++  java
  • JDBC 数据库连接池 小结

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

    JDBC 数据库连接池 小结

     

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

    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

    ConnectionPool.java

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

    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文件:

    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>
    复制代码

     

  • 相关阅读:
    Java String, StringBuffer和StringBuilder实例
    java中字符串的比较
    java中子类继承父类时是否继承构造函数
    Java中抽象类和接口的用法和区别
    与(&)、非(~)、或(|)、异或(^)
    Linux03
    Linux02
    Linux01
    力扣算法题
    算法 栈、队列、二分查找
  • 原文地址:https://www.cnblogs.com/donaldlee2008/p/5522119.html
Copyright © 2011-2022 走看看