Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
来源:互联网 发布:淘宝商家发货流程 编辑:程序博客网 时间:2024/05/18 13:05
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下的<GlobalNamingResources>节点里配置resource,例如:
(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下的<GlobalNamingResources>节点里配置resource,例如:
<Resource name="jdbc/ens" 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文件的<Context></Context>节点中添加如下配置:
<ResourceLink global="jdbc/ens" name="jdbc/ens" type="javax.sql.DataSource"/>
global="jdbc/ens" 中的参数值("jdbc/ens")必须和上一段<Resource >配置中的name属性的值保持一样。name="jdbc/ens" 这个可以随便取,但是在程序中调用的时候,就应该与name的值保持一致。到这里,连接池已经配置好啦。
用JSP测试一下:
<%@ page language="java" pageEncoding="gbk"%><%@page import="java.sql.Connection"%><%@page import="javax.naming.Context"%><%@page import="javax.naming.InitialContext"%><%@page import="javax.sql.DataSource"%><%@page import="java.sql.Statement"%><%@page import="java.sql.ResultSet"%><% //连接池的获取 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("<br>"); conn = ds.getConnection(); try{ stmt = conn.createStatement(); String sql ="select * from ens_area"; rs = stmt.executeQuery(sql); out.println("以下是从数据库中读取出来的数据:<br>"); while(rs.next()){ out.println("<br>"); out.println(rs.getString("area_name")); } }catch(Exception ex){ ex.printStackTrace(); }finally{ conn.close(); rs.close(); stmt.close(); } }%>
阅读全文
0 0
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- 新的数据库连接池Tomcat jdbc pool配置(tomcat7及其以上版本才有)
- Tomcat jdbc pool - Tomcat 7 新的数据库连接池使用教程
- 数据库连接配置1 -- Tomcat 中的 JDBC Pool
- tomcat.jdbc.pool(数据库连接池)
- Tomcat 中的 JDBC Pool及配置参数的介绍
- tomcat jdbc pool 配置
- Tomcat jdbc pool配置和使用
- Tomcat配置JDBC数据库连接池
- 连接池配置c3p0、dbcp、tomcat jdbc pool 及常用数据库的driverClass和驱动包
- tomcat jdbc pool 连接池配置
- tomcat 自带的 jdbc pool数据库连接池技术的使用
- 使用 Tomcat 7 新的连接池 —— Tomcat jdbc pool
- 使用 Tomcat 7 新的连接池 —— Tomcat jdbc pool
- 欢迎使用CSDN-markdown编辑器
- IMWeb提升营 —Day1
- java中byte, int的转换
- jsp页面操作<td><span>标签中的值的方式
- PHP实现多图片上传
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- JAVA回顾二之枚举类的使用
- highcharts 制作3D立体饼图
- spring多环境指定特定环境启动
- 中国区优化的Docker安装脚本
- logstash自定义匹配分析nginx日志
- php知识点
- Source Insight自定义快捷键
- 怎么使用plsql访问数据库服务器?