Tomcat内置连接池管理

来源:互联网 发布:仿永硕e盘源码 编辑:程序博客网 时间:2024/05/16 17:30

Tomcat内置连接池使用的是dbcp。
首先:要想将一个dbcp连接池让 tomcat管理,只需要创建一个context.xml配置文件,在配置文件中配置相关信息。

<Context>    <Resource name="jdbc/EmployeeDB"    auth="Container"type="javax.sql.DataSource"username="root"password="abc"    driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql:///day18"    maxActive="8" maxIdle="4"/></Context>

有了context.xml文件那么context.xml文件应该放哪里呢?
context.xml文件有如下位置可以选择:

  1. 在tomcat/conf/context.xml 这时这个连接池是给整个服务器使用的。
  2. 在tomcat/conf/Catalina/localhost 这时这个连接池只给localhost虚拟主机使用。
  3. 将context.xml文件放置在web应用的META-INF下

注意:如果是全局设置,那么我们需要将数据库驱动放置在tomcat/lib目录下

其次,有了连接池的配置,下面说说怎么获取连接池?
获取连接池的代码很简单,以在Servlet中获取连接池为例:

Context context = new InitialContext();Context envCtx = (Context)context.lookup("java:comp/env"); 固定路径DataSource datasource = (DataSource) envCtx.lookup("jdbc/EmployeeDB"); 

以上第一个context.lookup中的路径为固定路径,不用改变;
第二个envCtx.lookup(“jdbc/EmployeeDB”)为context.xml配置文件Resource中的name属性。


此处了解一下JNDI的概念:
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,
JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务
和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。目录服务是一种命名服务,
在这种服务里,对象不但有名称,还有属性。

0 0
原创粉丝点击