Tomcat 在 7.0 以前的版本都是使用commons-dbcp做为连接池的实现,但是 dbcp存在一些问题:

(1)dbcp 是单线程的,为了保证线程安全会锁整个连接池

(2)dbcp 性能不佳

(3)dbcp 太复杂,超过 60 个类,发展滞后。

因此,通常J2EE中还会使用其它的高性能连接池,如 C3P0,还有阿里系的 druid 等。为此,Tomcat 从 7.0 开始引入一个新的模块: Tomcat jdbc pool

tomcat jdbc pool 近乎兼容 dbcp ,性能更高

异步方式获取连接

tomcat jdbc pool 是 tomcat 的一个模块,基于 tomcat JULI,使用 Tomcat 的日志框架

使用 javax.sql.PooledConnection 接口获取连接

支持高并发应用环境

超简单,核心文件只有8个,比 c3p0 还少

更好的空闲连接处理机制

支持 JMX

支持 XA Connection。

tomcat jdbc pool 可在 Tomcat 中直接使用,也可以在独立的应用中使用。

1.Tomcat 中直接使用的方法:

在conf/server.xml下的节点里配置resource,例如:

auth="Container"

type="javax.sql.DataSource"

factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

testWhileIdle="true"

testOnBorrow="true"

testOnReturn="false"

validationInterval="30000"

timeBetweenEvictionRunsMillis="30000"

maxActive="100"

minIdle="10"

maxWait="10000"

initialSize="10"

removeAbandonedTimeout="60"

removeAbandoned="true"

logAbandoned="true"

minEvictableIdleTimeMillis="30000"

jmxEnabled="true"

jdbcInterceptors=

"org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"

username="root"

password="123"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/ens"/>

然后,在context.xml文件的节点中添加如下配置:

global="jdbc/ens" 中的参数值("jdbc/ens")必须和上一段配置中的name属性的值保持一样。name="jdbc/ens" 这个可以随便取,但是在程序中调用的时候,就应该与name的值保持一致。到这里,连接池已经配置好啦。

用JSP测试一下:

//连接池的获取

Connection conn = null;

DataSource ds = null;

ResultSet rs =null;

Statement stmt = null;

Context initCtx = new InitialContext();

ds =(DataSource)initCtx.lookup("java:comp/env/jdbc/ens");

if(ds!=null){

out.println("已经获得DataSource!");

out.println("
");

conn = ds.getConnection();

try{

stmt = conn.createStatement();

String sql ="select * from ens_area";

rs = stmt.executeQuery(sql);

out.println("以下是从数据库中读取出来的数据:
");

while(rs.next()){

out.println("
");

out.println(rs.getString("area_name"));

}

}catch(Exception ex){

ex.printStackTrace();

}finally{

conn.close();

rs.close();

stmt.close();

}

}

%>

http://www.open-open.com/lib/view/open1365991769687.html

tomcat7 mysql 连接池_Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置相关推荐

  1. mysql配置数据库连接池_三种数据库连接池的配置

    三种数据库连接池的配置及使用(For JDBC) 连接池的优缺点 优点 使用连接池的最主要的优点是性能.创建一个新的数据库连接所耗费的时间主要取决于网络的速 度以及应用程序和数据库服务器的 ( 网络 ...

  2. 连接池及Druid(德鲁伊) 数据库连接池

    连接池及Druid(德鲁伊) 数据库连接池 一.数据库连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间 ...

  3. hikaripool连接保持_springboot2的hikari数据库连接池默认配置

    序 Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 spring-configuration ...

  4. 手写java数据库连接池,自定义实现数据库连接池,兼容springboot

    一.目标 用精简的代码实现一个类似于Hikari,Druid一样的高性能数据库连接池. 二.实现思路 1:新建连接池配置类保存连接池配置. 2:实现DataSource接口. 3:新增SmpDbPoo ...

  5. java阿里数据库连接池_Java学习:数据库连接池技术

    本节内容 数据库连接池 Spring JDBC : JDBC Template 数据库连接池 1.概念:其实就是一个容器(集合),存放数据库连接的容器 当系统初始化好后,容器中会申请一些连接对象,当用 ...

  6. asp.net mysql 连接池_asp.net 使用数据库连接池

    数据库连接数过万的真相,原来我们错怪阿里云RDS了 在一次数据库连接问题中,我们坚持认为数据库连接数过万是阿里云RDS的问题,但后来阿里云提供了当时的数据库连接情况,让我们动摇了自己的想法. 上面这5 ...

  7. mysql连接池的原理_数据库连接池的实现及原理

    对于一个简单的数据库应用,由于对于数据库的访问不是很频繁.这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销.但是对于一个复杂的数据库应用,情况 ...

  8. spring boot socket长连接_springboot 整合阿里 druid 数据库连接池实战

    情景 web 开发中连接数据库基本是必须的,阿里的 druid 是一款非常优秀的开源数据库连接池工具. 本文将介绍一下如何使用 springboot 整合 druid 数据源. 快速开始 maven ...

  9. mysql 常用数据库连接池_常见的数据库连接池

    欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 2.C3P0 在Hibernate和Spring中默认支持该数据库连接池 需要引入:c3p0-0.9.1.2.jar包,如果 ...

最新文章

  1. 报名 | 挑战极限,参加2天清华数据Hackathon,赢得4万元奖金
  2. Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)...
  3. 7个示例科普CPU Cache
  4. Python通过snmp获取交换机VLAN号、VLAN默认网关、VLAN子网掩码和ARP表中的IP地址与MAC对应记录数据
  5. RTOS ---嵌入式操作系统之时钟节拍下的任务切换
  6. 使用ASP.NET MVC对用户组的自定义授权
  7. IT职场人生系列之十二:语言与技术I
  8. bzoj 4318 OSU!
  9. Vue.js身份证读卡器阅读器谷歌chrome火狐Firefox网页实现读取方法
  10. 中级职称的计算机考试题库,中级职称计算机考试模拟题库及答案
  11. 【参数】平面光:倍增为3.5,颜色为淡蓝色/淡——daiding
  12. 计算机科学与技术专业论文评语,计算机论文指导教师评语大全.doc
  13. R语言 dataframe 取指定行列filter 随机取数
  14. 老毛桃制作winPE镜像
  15. 基于两个移动平均线交叉的EA
  16. 应软”治理大学生上课玩手机现象
  17. sql外键需要输入吗_关于sql:为什么在没有连接的情况下可以联接,为什么需要主-外键关系?...
  18. 【自学笔记】尚硅谷数据结构与算法Chapter 2 稀疏数组和队列
  19. 论文:CVPR2020 | Strip Pooling:语义分割新trick,条纹池化取代空间池化
  20. 基于VMware虚拟机安装Ubuntu

热门文章

  1. 病毒注册表常用目标Svchost和Explorer
  2. cannot be cast to org.springframework.web.method.HandlerMethod 统一异常处理发生异常。
  3. 鸡啄米vc++2010系列12(属性页对话框)
  4. Windows Phone 7 处理休眠和墓碑的恢复
  5. 使用工具(Database Configuration Assistant)创建Oracle数据库
  6. 博客园是否提供trackback的rss
  7. python基本运算符
  8. iOS中使用UIActivityViewController系统分享到微信QQ微博包含文字图片URL
  9. jquery元素插入、删除、清空
  10. CURL 错误码 中文翻译