配置tomcat服务器的(JNDI)连接池

2012/04/19 2212点热度 0人点赞 0条评论

基于Tomcat的配置文件的连接池:(利用JNDI配置)

  * 配置只对当前web的应用有效的连接池

   配置方法一:

     * 在tomcat的服务器的conf/server.xml的<Host>标签中增加如下的代码:

<Context path="/jndidataSource" docBase="D:\workspace\jndidataSource\WebRoot" reloadable="true">
    <Resource name="jdbc/mysql"      //JNDI的名称,通过该名称查找连接池对象
              auth="Container"           //连接池的管理方式,容器管理Container和应用程序管理(application),这里使用容器管理
              type="javax.sql.DataSource" //连接池的类型
              maxActive="10"              //最大连接数
              maxIdle="3"                 //最大空闲数
              maxWait="5000"              //最长等待时间
              username="root"            
              password="123456"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/test"/>
                                                  
</Context>

java代码获取连接

import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.junit.Test;
                  
public class TestJNDI { 
    @Test
    public void test(){
         try {
             //执行命名操作的初始上下文,符合jndi的规范,利用initContext对象查找服务器的公有空间
             Context initContext = new InitialContext(); 
             /*
              * 在服务器的公有空间中,查找java:/comp/env
              *    * java:/comp/env:固定写法,表示服务器的环境命名上下文空间
              *    * envContext: 表示环境命名上下文空间
              */
             Context envContext  = (Context)initContext.lookup("java:/comp/env");
             /*
              * envContext:表示环境命名上下文空间
              *    * 在环境命名上下文空间查找连接池对象
              */
             DataSource ds = (DataSource)envContext.lookup("jdbc/mysql"); 
             //获取连接
             Connection conn = ds.getConnection();
             System.out.println("conn   "+conn);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

配置方法二:

   *   在tomcat的服务器的conf目录下创建catalina文件夹,在catalina文件夹下创建localhost文件夹

   *   在localhost文件夹下创建jndidataSource.xml(和工程名称要一致)

  jndidataSource.xml内容如下

<?xml version='1.0' encoding='utf-8'?>
   <Context  docBase="D:\\workspace\\jndidataSource\\WebRoot" reloadable="true">
       <Resource name="jdbc/mysql"
                 auth="Container"
                 type="javax.sql.DataSource"
                 maxActive="10"
                 maxIdle="3"
                 maxWait="1000"
                 username="root"
                 password="root"
                 driverClassName="com.mysql.jdbc.Driver"
                 url="jdbc:mysql://localhost:3306/test"/>
   </Context>

java 读取方法同配置方法一

  * 配置对所有的web的应用有效的连接池

  * 在tomcat服务器的conf目录下context.xml文件中增加如下代码

<Resource name="jdbc/mysql"
          auth="Container"
          type="javax.sql.DataSource"
          maxActive="10"
          maxIdle="3"
          maxWait="1000"
          username="root"
          password="root"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/test"/>

java读取方法同配置方法一

yxkong

这个人很懒,什么都没留下

文章评论