Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1609274
  • 博文数量: 585
  • 博客积分: 14610
  • 博客等级: 上将
  • 技术积分: 7402
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-15 10:52
文章存档

2013年(5)

2012年(214)

2011年(56)

2010年(66)

2009年(44)

2008年(200)

分类:

2008-05-30 08:27:57

Tomcat本身不具备处理提供数据源的能力。借助于一些开源数据源实现,如:DBCP和C3P0等。

一、在可下载这些是Tomcat提供配置数据源所需的类库。
注意:Tomcat5.5以上标准版本自带dbcp,放在$Tomcat\common\lib目录;

下载三个文件后,将三个文件解压到Tomcat/common/lib,
1.The DBCP Component
commons-dbcp-1.2.1.jar
dbcp/

2.The Pool Component 1.2.jar
commons-pool-1.2.jar
pool/

3.Commons Collections 3.1
commons-collections-3.1.jar
collections/


There are several examples  of using DBCP available.


4、把数据库JDBC驱动拷贝到%TOMCAT_HOME%/common/lib和
                           %TOMCAT_HOME%/webapps/yourweb/WEB-INF/lib下(我的web文件夹名字叫quickstart)

二、

   1.  SQL server2000
 <Resource
  name="jdbc/quickstart"
  type="javax.sql.DataSource"
  password="123456"
  driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
  maxIdle="2"
  maxWait="5000"
  username="sa"
  url="jdbc:microsoft:sqlserver://localhost;DatabaseName=quickstart"   maxActive="4"/>

   2.MySQL
  
        name="jdbc/hnport"
        type="javax.sql.DataSource"
        password="sharker"
        driverClassName="com.mysql.jdbc.Driver"
        maxIdle="2"
        maxWait="5000"
        username="root"
        url="jdbc:mysql://localhost:3306/hnport"
        maxActive="4"/>

三、按数据源使用范围来分数据源配置两个方法:

方法一:所用Web可使用(全局数据源)
 
  1、修改%TOMCAT_HOME%/conf/server.xml文件,在之间加入如下代码:
      
        name="jdbc/hnport"
        type="javax.sql.DataSource"
        password="sharker"
        driverClassName="com.mysql.jdbc.Driver"
        maxIdle="2"
        maxWait="5000"
        username="root"
        url="jdbc:mysql://localhost:3306/hnport"
        maxActive="4"/>
  2、修改%TOMCAT_HOME%/webapps/yourweb/WEB-INF下的web.xml文件,在之间添加以下内容
  
  
  mysql Connection
  jdbc/hnport
  javax.sql.DataSource
  Container
  

 3、在%TOMCAT_HOME%/conf/Catalina/localhost下新建一个与你web文件夹同名的xml文件(我的是quickstart.xml)
  
  这一步非常重要,如果没有这步就会出错,会出现org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'



 
   type="javax.sql.DataSource"
   password="sharker"
   driverClassName="com.mysql.jdbc.Driver"
   maxIdle="2"
   maxWait="5000"
   username="root"
   url="jdbc:mysql://localhost:3306/hnport"
   maxActive="4"/>
 

方法二:只有某个Web可用(局部数据源
        1.该方法不会造成系统混乱,只需修改%TOMCAT_CAT%\conf\Cattalin\localhost下的Web配置文件。如:hnport.xml

<?xml version="1.0" encoding="UTF-8"?>

 
   type="javax.sql.DataSource"
   password="sharker"
   driverClassName="com.mysql.jdbc.Driver"
   maxIdle="2"
   maxWait="5000"
   username="root"
   url="jdbc:mysql://localhost:3306/hnport"
   maxActive="4"/>
 


 2、修改%TOMCAT_HOME%/webapps/yourweb/WEB-INF下的web.xml文件, 之间添加以下内容
  
  
  mysql Connection
  jdbc/hnport
  javax.sql.DataSource
  Container
  



 



四.测试
<%@page contentType="text/html;charset=big5"%>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*" %>
<%@page import="javax.naming.*" %>
<%
    try {
        Context initContext = new InitialContext();
        Context envContext  =
            (Context)initContext.lookup("java:/comp/env");
        DataSource ds =
            (DataSource)envContext.lookup("jdbc/hnport");
        Connection conn = ds.getConnection();
 
        if(!conn.isClosed())
           
            out.println("数据库连接测试成功");
        conn.close();
    }
    catch(SQLException e) {
        out.println(e.toString());
    }
%>
  
阅读(2274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~