zoukankan      html  css  js  c++  java
  • tomcat 7-dhcp配置数据库连接池

    原理


          关于连接池,大家都晓得用来限定对数据库的连接。基本的原理是预先在缓冲池中放入一定的空闲连接,当程序需要和数据库来交互时,不是直接新建数据库连接而是在连接池中直接取,使用完成后再放回到连接池中。为什么要这样牺牲一个缓冲来存放这些原本就会使用的连接呢?在上面讲了一个好处就是可以限定连接数,这样不会造成N多的数据库连接最后宕机;额外有了这样一个连接池,也可以来监听这些连接和便于管理。


    配置


    1.拷贝相关的jar


    要知道连接池不是用来直接操作数据库的,最终进行相关操作的还是相关的jdbc驱动。如果是tomcat服务器,直接将驱动拷到tomncatlib中。对于javaojdbc6.jar;对于sqlserver来讲是tomcat-dbcp.jar、servlet-ap.jar和sql server的驱动sqljdbc4.jar 包到项目文件的web-inf 文件夹下的lib目录。

     


    2.配置context.xml



    <Resource
                         name="jdbc/drp"
                        auth="Container"
                        type="javax.sql.DataSource"
                        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
                        maxActive="100"
                      maxIdle="30"
           maxWait="10000"
           username="drp1"
           password="drp1"
          driverClassName="oracle.jdbc.driver.OracleDriver"
          url="jdbc:oracle:thin:@localhost:1521:drp" />



    如果是全局配置的话,将context.xml文件放在tomcat的配置文件夹conf中即可;若想局部控制就需要将context.xml放在指定的项目中webrootmeta-inf中,就只会对自己本项目起作用。


    注:


    Name:指定连接池的名称

    Auth:是连接池管理权属性,Container表示容器管理

    type:数据源类型

    factory:这个是在tomcat 5之后对于commons-dhcp的一种处理方案,具体是用了这样一个指定的实现类来处理的。性能更加优越,也能够兼容dhcp

    maxActive:最大的分配连接数。

    maxIdleidle是空闲的意思,所以这个就是当tomcat启动时,缓冲池为连接的新建的连接数。

    maxWait:本文最大响应时间为10s

    url:为数据库地址。

    sqlserver的格式:jdbc:sqlserver://localhost:1433;DatabaseName=name

    driverclassname:驱动地址。

    sqlserver的为:com.microsoft.sqlserver.jdbc.SQLServerDriver

     

    3.验证


    Connectionconn=null;
    PreparedStatementpstmt=null;
    ResultSetrs=null;
    try{
    //实例DHCP连接池
    Contextctx=new InitialContext();
    //通过JNDI访问指定的连接池
    DataSourceds=(DataSource)ctx.lookup("java:comp/env/jdbc/drp");
    //实例化数据库连接
    conn=ds.getConnection();
    //查询语句
    pstmt=conn.prepareStatement("select* from t_user");
    rs=pstmt.executeQuery();
    if(rs.next()){
    System.out.print(rs.getString("user_id")+rs.getString("user_name"));
    System.out.print(conn);
    }
    }catch(SQLExceptione){
     
    }
    finally{
     
    }

     


    后序


        之前tomcat 5的版本即可以在localhost:8080/admin中视图化配置,也可在xml中;后面就弃用了视图化配置的过程。总得来说对于针对数据连接的处理的方案,有他的好处,也需要开发人员在平时的编程中养成好的习惯,如果对于开启的连接没有关闭,当连接池够大的时候,会影响性能;如果达到峰值,那么程序直接宕掉。也减少了咱们在创建数据库连接的时间。当然除了dhcp,也有C3P0Poolmen这样的处理方案。


  • 相关阅读:
    [转] STM32 FSMC学习笔记
    【转】嵌入式系统 Boot Loader 技术内幕
    mini2440 使用 JLink V8 直接烧写 Nor flash
    S3C6410移植uboot(一)
    2440的RTC时钟
    关闭2440 屏幕背光
    基于十级流水线的开立方根算法
    Visual Studio 2008配置SystemC开发环境
    Linux C 中字符串化操作符#
    linux 中 timeval结构体
  • 原文地址:https://www.cnblogs.com/guziming/p/4232672.html
Copyright © 2011-2022 走看看