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

发布时间 - 2026-01-11 00:40:26    点击率:

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这样的处理方案。

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


# Tomcat  # 7-dbcp配置数据库连接池详解  # 浅谈在Spring中如何使用数据源(DBCP、C3P0、JNDI)  # Java数据库连接池之DBCP浅析_动力节点Java学院整理  # dbcp 连接池不合理的锁导致连接耗尽解决方案  # java使用dbcp2数据库连接池  # java配置dbcp连接池(数据库连接池)示例分享  # Java dbcp连接池基本使用方法详解  # 连接池  # 是在  # 放在  # 连接数  # 用了  # 这样一个  # 池中  # 就会  # 也有  # 大家都  # 也可  # 希望能  # 可在  # 会对  # 要知道  # 时间为  # 在上面  # 谢谢大家  # 讲了  # 开发人员 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何注册花生壳免费域名并搭建个人网站?  高防服务器租用首荐平台,企业级优惠套餐快速部署  如何在建站之星绑定自定义域名?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  简单实现Android文件上传  Laravel如何创建自定义Artisan命令?(代码示例)  如何打造高效商业网站?建站目的决定转化率  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  javascript中对象的定义、使用以及对象和原型链操作小结  进行网站优化必须要坚持的四大原则  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何在阿里云虚拟主机上快速搭建个人网站?  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  图册素材网站设计制作软件,图册的导出方式有几种?  如何构建满足综合性能需求的优质建站方案?  如何快速搭建个人网站并优化SEO?  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel如何升级到最新版本?(升级指南和步骤)  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  如何在宝塔面板中创建新站点?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何用PHP工具快速搭建高效网站?  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  如何用PHP快速搭建CMS系统?  如何快速启动建站代理加盟业务?  如何快速生成高效建站系统源代码?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  网站建设保证美观性,需要考虑的几点问题!  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  如何有效防御Web建站篡改攻击?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  网站制作壁纸教程视频,电脑壁纸网站?  java中使用zxing批量生成二维码立牌  如何利用DOS批处理实现定时关机操作详解  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel如何自定义分页视图?(Pagination示例)  教你用AI润色文章,让你的文字表达更专业  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何在七牛云存储上搭建网站并设置自定义域名?  制作电商网页,电商供应链怎么做?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  网页设计与网站制作内容,怎样注册网站?