zl程序教程

您现在的位置是:首页 >  工具

当前栏目

tomcat 7-dbcp配置数据库连接池

Tomcat数据库配置 连接池 dbcp
2023-09-27 14:25:17 时间

原理


      关于连接池,大家都晓得用来限定对数据库的连接。主要的原理是预先在缓冲池中放入一定的空暇连接,当程序须要和数据库来交互时,不是直接新建数据库连接而是在连接池中直接取,使用完毕后再放回到连接池中。

为什么要这样牺牲一个缓冲来存放这些原本就会使用的连接呢?在上面讲了一个优点就是能够限定连接数,这样不会造成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-dbcp的一种处理方案,详细是用了这样一个指定的实现类来处理的。性能更加优越,也可以兼容dbcp

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{
//实例DBCP连接池
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中;后面就弃用了视图化配置的过程。总得来说对于针对数据连接的处理的方案,有他的优点,也须要开发者在平时的编程中养成好的习惯。假设对于开启的连接没有关闭。当连接池够大的时候,会影响性能;假设达到峰值,那么程序直接宕掉。也降低了咱们在创建数据库连接的时间。

当然除了dbcp,也有C3P0Poolmen这种处理方案。