热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Tomcat7-dbcp配置数据库连接池详解

这篇文章主要介绍了Tomcat7-dbcp配置数据库连接池详解的相关资料,需要的朋友可以参考下

Tomcat 7-dbcp配置数据库连接池详解

原理

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

配置

1.拷贝相关的jar

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

2.配置context.xml

   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放在指定的项目中webroot的meta-inf中,就只会对自己本项目起作用。

注:

Name:指定连接池的名称
Auth:是连接池管理权属性,Container表示容器管理
type:数据源类型
factory:这个是在tomcat 5之后对于commons-dbcp的一种处理方案,具体是用了这样一个指定的实现类来处理的。性能更加优越,也能够兼容dbcp。
maxActive:最大的分配连接数。
maxIdle:idle是空闲的意思,所以这个就是当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,也有C3P0、Poolmen这样的处理方案。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
author-avatar
小dej_531
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有