在TOMCAT5.0.27 中利用数据链接缓冲池

系统 1647 0

一、把相应的JDBC包放置到TOMCAT安装目录的COMMON/LIB目录中
二、TOMCAT的配置文件的内容(以ORACLE, THIN连接为例)
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="E:/Workspace/toshiba" path="/toshiba" reloadable="true" workDir="E:\Workspace\toshiba\work">
 <Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"/>

 <ResourceParams name="jdbc/OracleDB">

 <parameter>
  <name>factory</name>
  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 </parameter>

 <parameter>
  <name>driverClassName</name>
  <value>oracle.jdbc.driver.OracleDriver</value>
 </parameter>

 <parameter>
  <name>url</name>
  <value>jdbc:oracle:thin:@UFJ:1521:DRCH1001</value>
 </parameter>

 <parameter>
  <name>username</name>
  <value>scott</value>
 </parameter>

 <parameter>
  <name>password</name>
  <value>tiger</value>
 </parameter>

 <parameter>
  <name>maxActive</name>
  <value>20</value>
 </parameter>

 <parameter>
  <name>maxIdle</name>
  <value>10</value>
 </parameter>

 <parameter>
  <name>maxWait</name>
  <value>-1</value>
 </parameter>

 </ResourceParams>
</Context>

三、WEB。XML文件的内容
<?xml version="1.0" encoding="UTF-8"?>
<!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>
 <resource-ref>
  <description>Oracle Datasource example</description>
  <res-ref-name>jdbc/OracleDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

四、JAVA代码的书写

package com.csk.dm;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;


public class ServiceLocator {
 private InitialContext ic = null;
 private Map cache;
 
 private static ServiceLocator me = null;
 
 static {
  try {
   me = new ServiceLocator();
  } catch (ServiceLocatorException se) {
   System.err.println(se);
   se.printStackTrace(System.err);
  }
 }

 /**
  * 
  */
 public ServiceLocator() throws ServiceLocatorException {
  try {
   ic = new InitialContext();
   cache = Collections.synchronizedMap(new HashMap());
  } catch (NamingException ne) {
   throw new ServiceLocatorException(ne);
  } catch (Exception e) {
   throw new ServiceLocatorException(e);
  }
 }
 
 /**
  * @return
  */
 public static ServiceLocator getInstance() {
        return me;
      }
 
    /**
     * @param dataSourceName
     * @return
     * @throws ServiceLocatorException
     */
    public DataSource getDataSource(String dataSourceName) throws ServiceLocatorException {
        DataSource dataSource = null;
        try {
          if (cache.containsKey(dataSourceName)) {
             dataSource = (DataSource) cache.get(dataSourceName);
          } else {
            Context ctx = (Context)ic.lookup("java:comp/env");
              dataSource = (DataSource)ctx.lookup(dataSourceName);
              cache.put(dataSourceName, dataSource );
          }
        } catch (NamingException ne) {
           throw new ServiceLocatorException(ne);
        } catch (Exception e) {
              throw new ServiceLocatorException(e);
        }
        return dataSource;
      }

}

在TOMCAT5.0.27 中利用数据链接缓冲池


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论