zoukankan      html  css  js  c++  java
  • 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 versi 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>

  • 相关阅读:
    mybatis0206 延迟加载
    怎样关闭“粘滞键”?
    TNS-12557: TNS:protocol adapter not loadable TNS-12560: TNS:protocol adapter error
    HTTP协议头部与Keep-Alive模式详解
    oracle定时器执行一遍就不执行或本就不执行
    Inflation System Properties
    https://stackoverflow.com/questions/16130292/java-lang-outofmemoryerror-permgen-space-java-reflection
    java spring中对properties属性文件加密及其解密
    annotation配置springMVC的方法了事务不起作用
    SQLPlus在连接时通常有四种方式
  • 原文地址:https://www.cnblogs.com/BlogNetSpace/p/1658708.html
Copyright © 2011-2022 走看看