TOMCAT下用JNDI建立数据库连接池

本文介绍如何在Tomcat服务器上使用JNDI配置数据库连接池,包括添加必要的库文件、配置server.xml文件及创建连接池类。

在以TOMCAT为WEB服务器的项目中,怎么样才能用JNDI建立数据库连接池呢? 请按下面的步骤: ######################## 1:首先在你运行的Tomcat/common/lib/下面要添加二个包commons-dbcp-1.1.jar,commons-pool-1.1.jar ######################## ######################## 2:(关键)如何配置Tomcat/conf/server.xml呢? ########################         <Context>      <Resource name="jdbc/hgjfDB" auth="Container" type="javax.sql.DataSource"/>           <ResourceParams name="jdbc/hgjfDB">             <parameter>          <name>factory</name>          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>        </parameter>         <parameter>          <name>maxActive</name>          <value>10</value>        </parameter>         <parameter>          <name>maxIdle</name>          <value>30</value>        </parameter>         <parameter>          <name>maxWait</name>          <value>10000</value>        </parameter>             <parameter>         <name>username</name>         <value>oa</value>        </parameter>            <parameter>         <name>password</name>         <value>oa</value>        </parameter>            <parameter>           <name>driverClassName</name>           <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>        </parameter>               <parameter>          <name>url</name>          <value>jdbc:microsoft:sqlserver://192.168.1.84:1433;DatabaseName=hgjfoa;SelectMethod=cursor</value>        </parameter>      </ResourceParams>         </Context> ######################## 3:数据库连接池类:文件ConnectionPool.java ######################## package com.db;

import java.sql.*;

import javax.naming.*; import javax.sql.*;

/**  *   * <p>Title: 数据库连接池</p>  * <p>Description: 用JNDI建立数据库连接池</p>  * <p>Copyright: Copyright (c) 2005</p>  * <p>Company: KC SoftGroup</p>  * @author KaileChen  * @version 1.0  */ public class ConnectionPool {

        private static String JNDI_NAME = "java:comp/env/jdbc/hgjfDB";         private DataSource ds;         private static ConnectionPool mySelf;

        private ConnectionPool(DataSource ds)         {                 this.ds = ds;         }

        public static ConnectionPool getInstance()         {                 try                 {                         if (mySelf == null)                         {                                 Context initCtx = new InitialContext();                                 DataSource ds = (DataSource) initCtx.lookup(JNDI_NAME);                                 mySelf = new ConnectionPool(ds);                         }                         return mySelf;                 }                 catch (NamingException ex)                 {                         System.out.println(ex.getMessage());                         throw new RuntimeException("ConnectionPool.getInstance.NamingException");                 }         }

        public Connection getConnection(boolean autoCommit) throws SQLException {

                Connection con = ds.getConnection();                 con.setAutoCommit(autoCommit);                 return con;         }

} ######################## 4:如何调用已经建立好的Connection呢? ######################## public class NewsBO {  private ConnectionPool pool = null;         public NewsBO() {                 this.pool = ConnectionPool.getInstance();         }

        public Collection findAll() throws NewsException {                 Connection con = null;                 try {                         con = pool.getConnection(true);                         ..............................                 }                 catch (Exception e) {                 }                 finally {                         ..............................                 }         } } ########################

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值