Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
来源:互联网 发布:网络公会名称 编辑:程序博客网 时间:2024/05/04 16:21
Tomcat 在 7.0以前的版本都是使用commons-dbcp做为连接池的实现,但是 dbcp存在一些问题:
(1)dbcp是单线程的,为了保证线程安全会锁整个连接池
(2)dbcp性能不佳
(3)dbcp太复杂,超过 60个类,发展滞后。
因此,通常J2EE中还会使用其它的高性能连接池,为此,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 7中直接使用的方法:
在conf/server.xml下的<GlobalNamingResources>节点里配置resource,例如:
<Resource name="jdbc/sqlserver" auth="Container"
type="javax.sql.DataSource" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=test"
username="sa" password="sa"
maxActive="5000" maxIdle="10" maxWait="-1"/>
在context.xml文件的<Context></Context>节点中添加如下配置:
<ResourceLink global="jdbc/sqlserver" name="jdbc/sqlserver" type="javax.sql.DataSource"/>
global=" jdbc/sqlserver "中的参数值("jdbc/sqlserver ")必须和上一段<Resource >配置中的name属性的值保持一样。name="jdbc/sqlserver " 这个可以随便取,但是在程序中调用的时候,就应该与name的值保持一致。
2.JSP代码:
<%@page language="java"contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<%@page import="java.sql.*"%>
<%@page import="javax.naming.*"%>
<%
try{
Context initCtx=new InitialContext();
Context ctx=(Context)initCtx.lookup("java:comp/env");
//获取连接池对象
Object obj=(Object)ctx.lookup("jdbc/sqlserver");
//类型转换
javax.sql.DataSource ds=(javax.sql.DataSource)obj;
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
String strSql="select * from userTable";
ResultSet rs=stmt.executeQuery(strSql);
out.print("<table border style='font-size:10pt'>");
out.print("<tr><td colspan=8 align='center'>用户数据</td></tr>");
out.print("<tr>");
out.print("<td width=60>用户ID号</td>");
out.print("<td width=50>用户名</td>");
out.print("<td width=100>用户真实姓名</td>");
out.print("<td width=40>年龄</td>");
out.print("<td width=40>性别</td>");
out.print("<td width=100>联系地址</td>");
out.print("<td width=100>联系电话</td>");
out.print("<td width=100>添加时间</td>");
out.print("</tr>");
while(rs.next()){
out.print("<tr>");
out.print("<td>"+rs.getLong(1)+"</td>");
out.print("<td>"+rs.getString(2)+"</td>");
out.print("<td>"+rs.getString(4)+"</td>");
out.print("<td>"+rs.getInt("user_age")+"</td>");
out.print("<td>"+rs.getString("user_sex")+"</td>");
out.print("<td>"+rs.getString("user_address")+"</td>");
out.print("<td>"+rs.getString("user_telephone")+"</td>");
out.print("<td>"+rs.getString("add_time")+"</td>");
out.print("</tr>");
}
out.print("</table>");
}catch(Exception ex){
out.print(ex);
}
%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=GB2312">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
- 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
- Fragment与Activity--数据传递、更新UI
- 几种查找算法
- jqgrid ColModel的fixed属性
- ZT:架构师已死(转自UML软件工程组织) - 我一路走来--- - 博客频道 - CSDN.NET
- GitHub
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- golang可以写前端,你澡吗?
- POJ 2352 Stars 树状数组
- linux shell的自动交互
- UVa 455 - Periodic Strings(字符串处理)
- 集算报表对润乾报表的优化精简
- IIC
- ZigZag Conversion (Java)
- win7 64 install dual os with debian 7-Windows7_Debian双系统安装