注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zhouhaigang.love的博客

喜欢冬日黄昏那冻住的山

 
 
 

日志

 
 

如何在tomcat下配制数据源  

2008-02-20 20:08:19|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

给出一个tomcat5配置 常见数据库连接池的例子.环境: w2kp sp4,   jsdk1.4.2_8; tomcat5.0.2.8; oracle817, sqlserver2000 sp3 , mysql5 beta

总的来说在tomcat配置一个数据源有4项工作要做.

    1. 在server.xml 里配置数据源连接池参数。 可以手动,也可以通过tomcat admin工具。

   2. 在 %CATALINA_HOME%\conf\Catalina\localhost\ 下 , 对用你自己的webapp用户

  yourapp.xml 配置 对数据源的声明.

    3. 在自定义的webapp 下WEB-INFO\web.xml 下配置对数据源的引用。

   4. 在特定数据库的jdbc 驱动copy 到%CATALINA_HOME%\common\lib\ 下

     其他应用服务器可能要配置classpath 等.

     oracle 数据源配置.

     1.进入 http://localhost:8080/admin/   conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

    选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面

,内容如下:

        JNDI Name:    jdbc/oracle           

            Data Source URL:  jdbc:oracle:thin:@192.168.0.18:1521:oradb

            JDBC Driver Class:   oracle.jdbc.driver.OracleDriver

            User Name:    oraconn

            Password:     oraconn           

            Max. Active Connections:    20

            Max. Idle Connections:    10

            Max. Wait for Connection:    5000

            Validation Query:  

             其中oradb 是oracle数据库的SID. oraconn 为oracle可用的用户名密码.

        

       2.进入%TOMCAT_HOME%\conf\Catalina\localhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如    test.xml

,并在此文件的下添入代码:

<ResourceLink name="jdbc/oracle" global="jdbc/oracle" type="javax.sql.DataSourcer"/>

          3、  修改web.xml和%TOMCAT_HOME%\conf\Catalina\localhost下对应你的引用的配置文件

打开%TOMCAT_HOME%\conf\web.xml,在</web-app>的前面添加以下内容:

      <resource-ref>

    <description>oraDB Connection</description>

    <res-ref-name>jdbc/ora</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

      </resource-ref>

     注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。

  

     4. 在%oracle_home%\ora81\jdbc\lib 下有一个classes12.zip, 和nls_charset12.zip

      把这两个文件解压的一个临时目录下例如d:\work\temp\classes12  和    d:\work\temp\nls_charset12  

    进入这两个目录  d:> cd work\temp\classes12 

           用  jar -cvf classes12.jar * 创建classes12.jar 同样创建 nls_cahrset12.jar

    把这两个jar文件copy 到  %tomcat_home% \common\lib 下。

    oracle 数据库配置完毕。

     sqlserver2000    

       1.进入 http://localhost:8080/admin/   conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

    选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面

,内容如下:

        JNDI Name:    jdbc/sqlserver     

            Data Source URL:  jdbc:microsoft:sqlserver://192.168.0.18:1433;DatabaseName=sqldb

            JDBC Driver Class:   com.microsoft.jdbc.sqlserver.SQLServerDriver

            User Name:    sqlconn

            Password:     sqlconn           

            Max. Active Connections:    20

            Max. Idle Connections:    10

            Max. Wait for Connection:    5000

            Validation Query:  

             其中sqldb 是sqldb数据库名称. sqlconn 为sqlserver可用的用户名密码.

        

       2.进入%TOMCAT_HOME%\conf\Catalina\localhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如    test.xml

,并在此文件的下添入代码:

<ResourceLink name="jdbc/sqlserver" global="jdbc/sqlserver" type="javax.sql.DataSourcer"/>

          3、  修改web.xml和%TOMCAT_HOME%\conf\Catalina\localhost下对应你的引用的配置文件

打开%TOMCAT_HOME%\conf\web.xml,在</web-app>的前面添加以下内容:

      <resource-ref>

    <description>sqlserverDB Connection</description>

    <res-ref-name>jdbc/sqlserver</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

      </resource-ref>

     注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。

  

     4.   下载sqlserver2000 jdbc 驱动 http://download.microsoft.com/download/SQLSVR2000/Install/2.2.0022/UNIX/EN-

US/mssqlserver.tar

    解压后找到如下jar包 msbase.jar , mssqlserver.jar, msutil.jar

    把这3个jar包copy 到  %tomcat_home% \common\lib 下。

  

     sqlserver 配置完毕

     mysql5 beta 数据源配置

            1.进入 http://localhost:8080/admin/   conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

    选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面

,内容如下:

        JNDI Name:    jdbc/mysql

            Data Source URL:  jdbc:mysql://192.168.0.18/mysqldb

            JDBC Driver Class:   com.mysql.jdbc.Driver

            User Name:    mysqlconn

            Password:     mysqlconn           

            Max. Active Connections:    20

            Max. Idle Connections:    10

            Max. Wait for Connection:    5000

            Validation Query:  

             其中sqldb 是sqldb数据库名称. mysqlconn 为sqlserver可用的用户名密码.

        

       2.进入%TOMCAT_HOME%\conf\Catalina\localhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如    test.xml

,并在此文件的下添入代码:

<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>

          3、  修改web.xml和%TOMCAT_HOME%\conf\Catalina\localhost下对应你的引用的配置文件

打开%TOMCAT_HOME%\conf\web.xml,在</web-app>的前面添加以下内容:

      <resource-ref>

    <description>mysqlDB Connection</description>

    <res-ref-name>jdbc/sqlmysql</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

      </resource-ref>

     注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。

  

     4.   下载mysql jdbc 驱动  mysql-connector-java-3.1.9.zip

   

    解压后找到如下jar包 mysql-connector-java-3.1.9-bin.jar

    这个jar包copy 到  %tomcat_home% \common\lib 下。

  

    mysql  配置完毕

   

   这是conf 下 server.xml 文件 的配置部分

     <GlobalNamingResources>

    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase"

type="org.apache.catalina.UserDatabase"/>

    <Resource name="jdbc/mysql" type="javax.sql.DataSource"/>

    <Resource name="jdbc/oracle" type="javax.sql.DataSource"/>

    <Resource name="jdbc/sqlserver" type="javax.sql.DataSource"/>

    <ResourceParams name="UserDatabase">

      <parameter>

        <name>factory</name>

        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>

      </parameter>

      <parameter>

        <name>pathname</name>

        <value>conf/tomcat-users.xml</value>

      </parameter>

    </ResourceParams>

    <ResourceParams name="jdbc/mysql">

      <parameter>

        <name>maxWait</name>

        <value>5000</value>

      </parameter>

      <parameter>

        <name>maxActive</name>

        <value>20</value>

      </parameter>

      <parameter>

        <name>password</name>

        <value>mysqlconn</value>

      </parameter>

      <parameter>

        <name>url</name>

        <value>jdbc:mysql://192.168.0.18/mysqldb</value>

      </parameter>

      <parameter>

        <name>driverClassName</name>

        <value>com.mysql.jdbc.Driver</value>

      </parameter>

      <parameter>

        <name>maxIdle</name>

        <value>10</value>

      </parameter>

      <parameter>

        <name>username</name>

        <value>mysqlconn</value>

      </parameter>

    </ResourceParams>

    <ResourceParams name="jdbc/oracle">

      <parameter>

        <name>maxWait</name>

        <value>5000</value>

      </parameter>

      <parameter>

        <name>maxActive</name>

        <value>20</value>

      </parameter>

      <parameter>

        <name>password</name>

        <value>oraconn</value>

      </parameter>

      <parameter>

        <name>url</name>

        <value>jdbc:oracle:thin:@192.168.0.18:1521:oradb</value>

      </parameter>

      <parameter>

        <name>driverClassName</name>

        <value>oracle.jdbc.driver.OracleDriver</value>

      </parameter>

      <parameter>

        <name>maxIdle</name>

        <value>10</value>

      </parameter>

      <parameter>

        <name>username</name>

        <value>oraconn</value>

      </parameter>

    </ResourceParams>

    <ResourceParams name="jdbc/sqlserver">

      <parameter>

        <name>maxWait</name>

        <value>5000</value>

      </parameter>

      <parameter>

        <name>maxActive</name>

        <value>20</value>

      </parameter>

      <parameter>

        <name>password</name>

        <value>sqlconn</value>

      </parameter>

      <parameter>

        <name>url</name>

        <value>jdbc:microsoft:sqlserver://192.168.0.18:1433;DatabaseName=sqldb</value>

      </parameter>

      <parameter>

        <name>driverClassName</name>

        <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

      </parameter>

      <parameter>

        <name>maxIdle</name>

        <value>10</value>

      </parameter>

      <parameter>

        <name>username</name>

        <value>sqlconn</value>

      </parameter>

    </ResourceParams>

  </GlobalNamingResources>

   其中192.168.0.18为数据库服务器IP

.  

   下面是 %CATALINA_HOME%\conf\Catalina\localhost 对应的 xml 文件。  我的应用是test.xml

    <?xml version='1.0' encoding='utf-8'?>

<Context displayName="My Web Application" docBase="test" path="/test" workDir="work\Catalina\localhost\test">

  <ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSourcer"/>

  <ResourceLink global="jdbc/sqlserver" name="jdbc/sqlserver" type="javax.sql.DataSourcer"/>

  <ResourceLink global="jdbc/oracle" name="jdbc/oracle" type="javax.sql.DataSourcer"/>

</Context>

   以下是test webapp 下的WEB-INFO web.xml文件

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<display-name>My Web Application</display-name>

<description>

        A application for test.

</description>

<!--Mysql Database Config start -->

<resource-ref>

    <description>mysqlDB Connection</description>

    <res-ref-name>jdbc/mysql</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

</resource-ref>

<!-- Mysql Database Config end -->

<!-- Sqlserver Database Config start -->

<resource-ref>

        <description>sqlserverDB Connection</description>

        <res-ref-name>jdbc/sqlserver</res-ref-name>

        <res-type>javax.sql.DataSource</res-type>

        <res-auth>Container</res-auth>

</resource-ref>

<!-- Sqlserver Database Config end -->

<!-- oracle Database Config start -->

<resource-ref>

    <description>oracleDB Connection</description>

    <res-ref-name>jdbc/oracle</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

</resource-ref>

<!-- oracle Database Config end -->

  <!-- Example filter to set character encoding on each request -->

    <filter>

        <filter-name>Set Character Encoding</filter-name>

        <filter-class>filters.SetCharacterEncodingFilter</filter-class>

        <init-param>

            <param-name>encoding</param-name>

            <param-value>GB2312</param-value>

        </init-param>

    </filter>

<filter-mapping>

        <filter-name>Set Character Encoding</filter-name>

        <url-pattern>/*</url-pattern>

</filter-mapping>

</web-app>

在oracle  , sqlserver , mysql 建立3个类似的简单表来测试  

mysql

create table test_user

(

  NAME    VARCHAR(50)

)

oracle

create table test_user

(

  NAME    VARCHAR2(50)

)

sqlserver

create table test_user

(

  NAME    VARCHAR(50)

)

ok  配置工作已经完成。 让我们写3个JSP来测试。

     testDSoracle.jsp文件

     <%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@ page session="false" %>

<html>

<head>

<title></title>

<%

   out.print("我的测试开始"+"<br/>");

   DataSource ds = null;

   try{

   InitialContext ctx=new InitialContext();

   ds=(DataSource)ctx.lookup("java:comp/env/jdbc/oracle");

   Connection conn = ds.getConnection();

   Statement stmt = conn.createStatement();

  

   String strSql = " select * from test_user";

   ResultSet rs = stmt.executeQuery(strSql);

   while(rs.next()){

      out.print(rs.getString(1)+"<br/>");                

     }

        rs.close();

        stmt.close();

        conn.close();

out.print("我的测试结束");

   }

   catch(Exception ex){

       out.print("出现例外,信息是:"+ex.getMessage());

    ex.printStackTrace();

   }

%>

</head>

<body>

</body>

</html>

=================================================================================================

     testDSsqlserver.jsp文件

     <%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@ page session="false" %>

<html>

<head>

<title></title>

<%

   out.print("我的测试开始"+"<br/>");

   DataSource ds = null;

   try{

   InitialContext ctx=new InitialContext();

   ds=(DataSource)ctx.lookup("java:comp/env/jdbc/sqlserver");

   Connection conn = ds.getConnection();

   Statement stmt = conn.createStatement();

  

   String strSql = " select * from test_user";

   ResultSet rs = stmt.executeQuery(strSql);

   while(rs.next()){

      out.print(rs.getString(1)+"<br/>");                

     }

        rs.close();

        stmt.close();

        conn.close();

out.print("我的测试结束");

   }

   catch(Exception ex){

       out.print("出现例外,信息是:"+ex.getMessage());

    ex.printStackTrace();

   }

%>

</head>

<body>

</body>

</html>

=======================================================================================================

     testDSmysql.jsp文件

     <%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@ page session="false" %>

<html>

<head>

<title></title>

<%

   out.print("我的测试开始"+"<br/>");

   DataSource ds = null;

   try{

   InitialContext ctx=new InitialContext();

   ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");

   Connection conn = ds.getConnection();

   Statement stmt = conn.createStatement();

  

   String strSql = " select * from test_user";

   ResultSet rs = stmt.executeQuery(strSql);

   while(rs.next()){

      out.print(rs.getString(1)+"<br/>");                

     }

        rs.close();

        stmt.close();

        conn.close();

out.print("我的测试结束");

   }

   catch(Exception ex){

       out.print("出现例外,信息是:"+ex.getMessage());

    ex.printStackTrace();

   }

%>

</head>

<body>

</body>

</html>

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=534445

  评论这张
 
阅读(121)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017