在tomcat中配置连接池

类别:Java 点击:0 评论:0 推荐:

                         在tomcat中配置连接池

1.打开server.xml:在<Context > </Contex>中添加如下连接池参数语句,一个完整的例子如下:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="E:\Projects\ColorRing\wap" path="/wap" reloadable="true">
  <Resource name="jdbc/wapOracle" auth="Container"
        type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/wapOracle">         <!--这里name的值必须与Resource里的name的值相同-->
   <parameter>
     <name>factory</name>
     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
   </parameter> 
    <parameter>
      <name>url</name>
      <value>jdbc:oracle:thin:@172.18.51.101:1521:sundb</value>   <!--连接数据库的url-->
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>20</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>0</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>5000</value>
    </parameter>
    <parameter>
      <name>removeAbandoned</name>
      <value>true</value>
    </parameter>
    <parameter>                     
      <name>username</name>           <!--用户名-->
      <value>cms_user</value>
    </parameter>
    <parameter>
      <name>logAbandoned</name>
      <value>true</value>
    </parameter>
    <parameter>
      <name>removeAbandonedTimeout</name>
      <value>60</value>
    </parameter>
    <parameter>
      <name>password</name>          <!--密码-->
      <value>12345</value>
    </parameter>
  </ResourceParams>
</Context>


2.打开工程下的WEB-INF/web.xml,添加如下部分:
  <resource-ref>
    <description>Oracle Datasource example</description>
    <res-ref-name>jdbc/wapOracle</res-ref-name>           <!--这里name的值也必须与server.xml中的Resource里的name的值相同-->
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
 
3.然后写连接数据库的语句:
package util;

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

public class OracleDB {
    String url_  = "192.168.1.41:1521:gxcring";
    //String url_ = "172.18.51.101:1521:SUNDB";
    String id_ = "cms_user";
    String pass_ = "12345";

    Connection conn = null;
    Statement stmt = null;

    public OracleDB() {
        try {
            //Class.forName("oracle.jdbc.driver.OracleDriver");
            //conn = DriverManager.getConnection("jdbc:oracle:thin:@" + url_, id_, pass_);
            Context initContext = new InitialContext();
            Context envContext = (Context) initContext.lookup("java:/comp/env");
            DataSource ds = (DataSource) envContext.lookup("jdbc/wapOracle");       //注意这里的名字与配置文件里的名字相同就行了。
            conn = ds.getConnection();

            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                        ResultSet.CONCUR_UPDATABLE);
        } catch (NamingException ne) {
            System.out.println("Initial DataSource error.");
            ne.printStackTrace();
        } catch (SQLException e) {
            System.out.println("ORACLE: " + e);
            e.printStackTrace();
        }
    }

    /**
     * 返回Connction对象
     * @param none
     * @return Connction
     */
    public Connection getConn() {
        return this.conn;
    }
}

呵呵。这样就行啦, 在其它地方调用数据库时与用JDBC没有什么分别。很简单的。
                     

本文地址:http://com.8s8s.com/it/it15710.htm