Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 816|回复: 0

在Tomcat中配配置数据源

[复制链接]

该用户从未签到

发表于 2011-10-18 20:59:25 | 显示全部楼层 |阅读模式
Tomcat本身不具备处理提供数据源的能力。借助于一些开源数据源实现,如:DBCP和C3P0等。

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

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

2.The Pool Component 1.2.jar
commons-pool-1.2.jar
http://commons.apache.org/pool/

3.Commons Collections 3.1
commons-collections-3.1.jar
http://commons.apache.org/collections/


There are several examples  of using DBCP available.
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/doc/

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
   <Resource
        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文件,在<GlobalNamingResources></GlobalNamingResources>之间加入如下代码:
       <Resource
        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文件,在<web-app></web-app>之间添加以下内容
  
  <resource-ref>
  <description>mysql Connection</description>
  <res-ref-name>jdbc/hnport</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>

 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'

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/hnport" reloadable="true" docBase="d:\hnport\WebRoot" workDir="d:\hnport\work">
  <Resource 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"/>
</Context>

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

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/hnport" reloadable="true" docBase="d:\hnport\WebRoot" workDir="d:\hnport\work">
  <Resource 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"/>
</Context>


2、修改%TOMCAT_HOME%/webapps/yourweb/WEB-INF下的web.xml文件,在<web-app> </web-app>之间添加以下内容
  
  <resource-ref>
  <description>mysql Connection</description>
  <res-ref-name>jdbc/hnport</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>

<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
 



四.测试
<%@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());
    }
%>
回复

使用道具 举报

该用户从未签到

发表于 2011-10-31 10:46:47 | 显示全部楼层
谢谢啦啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-17 19:47 , Processed in 0.379670 second(s), 47 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表