基于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文件夹


  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读取方法同配置方法一