Tomcat6数据源的配置 .

本文详细介绍了在Tomcat6环境下配置MySQL数据源的过程,包括在META-INF目录下创建context.xml文件并添加配置信息,以及在web.xml中指定资源引用。同时,提供了测试用的Servlet代码和数据库部署步骤,确保Web应用能在不同环境中稳定运行。

关于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文件,该文件的内容为:

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

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

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

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

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

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

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

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

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

url:指定数据库服务的URL

 

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

  1. <resource-ref>  
  2.     <description>Tomcat DataSource</description>  
  3.     <res-ref-name>jdbc/dstest</res-ref-name>  
  4.     <res-type>javax.sql.DataSource</res-type>  
  5.     <res-auth>Container</res-auth>  
  6. </resource-ref>  

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

 

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

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

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

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

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

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

  1. package wen.hui.ds;  
  2.   
  3. import java.io.IOException;  
  4. import java.sql.Connection;  
  5. import java.sql.ResultSet;  
  6. import java.sql.Statement;  
  7.   
  8. import javax.naming.Context;  
  9. import javax.naming.InitialContext;  
  10. import javax.servlet.ServletException;  
  11. import javax.servlet.http.HttpServlet;  
  12. import javax.servlet.http.HttpServletRequest;  
  13. import javax.servlet.http.HttpServletResponse;  
  14. import javax.sql.DataSource;  
  15.   
  16. public class TestDataSource extends HttpServlet {  
  17.     protected void service(HttpServletRequest req, HttpServletResponse resp)  
  18.             throws ServletException, IOException {  
  19.         try {  
  20.             Context ctx = new InitialContext();  
  21.             DataSource ds = (DataSource)ctx.lookup("java:comp/env/dstest");  
  22.             Connection conn = ds.getConnection();  
  23.             Statement stmt = conn.createStatement();  
  24.             ResultSet rs = stmt.executeQuery("select * from user");  
  25.             while(rs.next()) {  
  26.                 System.out.println(rs.getString(1) + ", " + rs.getString(2));  
  27.             }  
  28.             rs.close();  
  29.             stmt.close();  
  30.         } catch (Exception e) {  
  31.             e.printStackTrace();  
  32.         }  
  33.     }  
  34. }  

 

在web.xml中配置servlet

  1. <servlet>  
  2.     <servlet-name>test</servlet-name>  
  3.     <servlet-class>wen.hui.ds.TestDataSource</servlet-class>  
  4. </servlet>  
  5. <servlet-mapping>  
  6.     <servlet-name>test</servlet-name>  
  7.     <url-pattern>/test</url-pattern>  
  8. </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、付费专栏及课程。

余额充值