以往Tomcat5.0的连接池配置是在http://localhost:8080/admin/下进行的非常方便,可是5.0以后的版本里面Tomcat就没有把admin集成到程序中了。
Tomcat5.5的admin可以在apache官方网站上下到,也可以通过admin里面的提示信息进行配置。
可是Tomcat6.0和7.0以后就没有admin管理界面了。这个时候配置连接池就必须手动配置了。
以前很多都是在server.xml中配置的,现在分离出了一个context.xml
下面说一下,在Tomcat6和7下如何配置连接池
第一步:首先要把jdbc驱动文件拷贝到Tomcat安装目录的lib文件夹下
由于是使用Tomcat提供的数据源实现来访问数据库(注意:数据源本身并不提供具体的数据库访问功能,只是作为连接对象的工厂,实际的数据访问操作仍然是由对应数据库的JDBC驱动来完成),这里是Tomcat需要JDBC驱动,而不再是应用程序需要JDBC驱动,所以得先将对应数据库的JDBC驱动类库(.jar格式)拷贝到Tomcat目录中的lib文件夹下,供Tomcat调用。
第二步:打开Tomcat目录下的conf文件夹然后打开context.xml文件,在里面添加
<Resource name="myoracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="drp"
password="drp"
maxActive="3"
maxIdle="1"
maxWait="3000"/>
参数说明:
name:表示你的连接池的名称也就是你要访问连接池的地址
auth:是连接池管理权属性,Container表示容器管理
type:是对象的类型
driverClassName:是数据库驱动的名称。因为不同人可能用不同数据库,所以对于driverClassName,去查看jar包里面驱动类的路径。
url:是数据库的地址,最后的:orcl可以更改为你安装数据库的时候的实例名称
username:是登陆数据库的用户名
password:是登陆数据库的密码
maxActive:同时能够从连接池中被分配的可用连接的最大数,设 0 为没有限制
maxIdle:连接池启动时,初始化的连接数,(可以同时闲置在连接池中的连接的最大数),设 0 为没有限制
maxWait:最大等待毫秒数, 单位为 ms, 超过时间会出错误信息。设为-1表示无限制。
注:
1、如果你用sqlserver,注意,要去打开验证方式,打开tcp/ip协议,绑定1433端口。
2、对于driverClassName,一定要去查看jar包里面驱动类的路径
第三步:
如果不想与其他应用公用这个连接池配置,那么把context.xml剪切到你的应用下的“META-INF文件夹下”
注:除了配置Tomcat的context.xml文件外,也可在web项目的META-INF文件夹下新增文件context.xml,其内容和上面的基本一样,如下。(因为Web程序部署发布时Tomcat会自动加载WEB-INF下的内容,也就可以获得这些信息了,所以和上面的是一样的效果。但要明白一点的是:这样的配置就只对当前Web项目有效,其他项目不能使用这些信息)
测试连接用jsp:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%
//执行通过,不抛异常,则说明正确
Connection conn = null;
try {
//new DBCP....
Context ctx = new InitialContext();
//通过JNDI查找DataSource
DataSource ds = (DataSource)ctx.lookup("java:comp/env/myoracle");
conn = ds.getConnection();
}catch(Exception e) {
e.printStackTrace();
}finally {
conn.close();
}
%>