Tomcat6数据源的配置

本文介绍如何在Tomcat6中配置MySQL数据源,包括context.xml的设置及必要的资源引用,最后通过一个简单的Servlet示例验证配置的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Tomcat中数据源的配置,不同的版本方法略有不同,如果不注意这些差别,就会使得Web应用在不同环境中布署出现问题。
Tomcat 5的数据源配置跟Tomcat 5.5的数据源配置有很多的差别,Tomcat 6的数据源配置跟Tomcat 5.5的配置基本上相同。

这里用Tomcat6+MySQL来配置数据源:

在WebRoot目录下,新建一个META-INF的目录(假如不存在),在该目录下创建一个context.xml文件,(或conf目录下的全局context.xml),并且在context.xml文件当添加以下的配置信息(要根据自己的情况稍加修改):

这里选在META-INF下新建一个context.xml文件,该文件的内容为:

<Context> <Resource name="jdbc/dstest" auth="Container" type="javax.sql.DataSource" maxActive="5" maxIdle="2" maxWait="10000" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/dstest" /> </Context>

//Resource要根据你自己的情况配置

name: 指定数据源在容器中的JNDI名

maxActive:指定数据源最大活动连接数

maxIdle:指定数据源中最大的空闲连接数

maxWait:指定数据源中最大等待获取连接的客户端

username:指定连接数据库的用户名

password:指定连接数据库的密码

driverClassName:指定连接数据库的驱动

url:指定数据库服务的URL

在以往的tomcat当中还需要在web.xml指定相应的resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置,配置如下:

<resource-ref> <description>Tomcat DataSource</description> <res-ref-name>jdbc/dstest</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

//这个很容易看懂,就做解释了。。。

最后,记得把mysql的驱动存放到%TOMCAT_HOME%/lib里面,这是必须的,不然,tomcat没有办法找到driver,也就没法帮你new.

Ok,配置完成,编写一个小小的程序测试下。

---------------------------------------------------------------------------

这里假设已经要上面的步骤配置好,

用MyEclipse新建一个Web Project, 项目名:DataSource

编写一个测试用的Servlet,放在wen.hui.ds这个包下, 代码如下:

package wen.hui.ds; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; public class TestDataSource extends HttpServlet { protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/dstest"); Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from user"); while(rs.next()) { System.out.println(rs.getString(1) + ", " + rs.getString(2)); } rs.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); } } }

在web.xml中配置servlet

<servlet> <servlet-name>test</servlet-name> <servlet-class>wen.hui.ds.TestDataSource</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping>

建一个数据库:

drop database if exists dstest;
create database dstest;
use dstest;
create table user(
username varchar(20) primary key,
password varchar(20) not null
);
insert into user values('wwh', '123');
insert into user values('wwf', '123');
insert into user values('wwe', '123');

部署项目, 访问http://localhost:8080/DataSource/test

后台输出:

wwe, 123
wwf, 123
wwh, 123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值