以oracle数据库为例配置Tomcat服务器JNDI数据库连接池

本文介绍了如何配置Tomcat服务器的JNDI数据库连接池,以Oracle为例。通过JNDI接口,可以高效地管理和使用数据库连接,避免频繁建立连接带来的资源消耗。配置过程包括安装JDBC驱动、声明资源需求等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天学习了tomcat的JNDI数据库连接池的配置,今天重新自己查看tomcat的官方英语文档再配置一遍,加深印象。

首先JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。用户可以根据需要按照相应的配置取得对应需要的服务。

我们知道,如果每次程序访问数据库建立一个连接,是很消耗数据库的资源的,当访问用户多了,这个问题更是显而易见。数据库连接池就是为数据库连接建立一个缓冲池,里面存有一定数量的数据库连接,当我们的程序需要连接数据库时,就直接从缓冲池中拿取,而不需要每次都与数据库进行连接,这样节省了内存的消耗也加快了建立连接的速度。

接下来我们就来配置一下。

首先我们打开tomcat关于JNDI配置的文档地址,如果你没有删除tomcat/webapps目录下自带的5个案例的话。

首先第一步:

Install Your JDBC Driver。安装驱动:installing the driver's JAR file(s) into the $CATALINA_HOME/lib directory。基本意思就是说把你的数据库驱动放在tomcat目录下的lib文件夹下。我用的是oracle,所有我把oracle数据库驱动ojdbc14.jar 直接拷贝在文件夹下的lib文件夹下。

接下来第二步官方文档说:

Declare Your Resource Requirements。声明你的资源请求:官方文档要我们这么配置:

<resource-ref>
  <description>
    Resource reference to a factory for java.sql.Connection
    instances that may be used for talking to a particular
    database that is configured in the <Context>
    configurartion for the web application.
  </description>
  <res-ref-name>
    jdbc/EmployeeDB
  </res-ref-name>
  <res-type>
    javax.sql.DataSource
  </res-type>
  <res-auth>
    Container
  </res-auth>
</resource-ref>

按照要求,我是这么配置的:


第三步官方文档:

Code Your Application's Use Of This Resource。 编码,以使用你的资源,简单的就是修改你的dao层的取得链接代码。官方文档给出的配置是这样的:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");

Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();

我是这么配置的:

最后一步:

Configure Tomcat's Resource Factory 。也就是配置tomcat。我们需要配置的是Tomcat目录下的conf文件夹下的context.xml
官方给出的配置是这样的:
<Context ...>
  ...
  <Resource name="jdbc/EmployeeDB"
            auth="Container"
            type="javax.sql.DataSource"
            username="dbusername"
            password="dbpassword"
            driverClassName="org.hsql.jdbcDriver"
            url="jdbc:HypersonicSQL:database"
            maxActive="8"
            maxIdle="4"/>
  ...
</Context>
同样,我们修改我们需要的参数:

我们将官方修改的这段加入context.xml中。我们需要注意几个参数:
username和password就是你数据库的用户名密码。
maxIdle:最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
MaxActive:连接池的最大数据库连接数。设为0表示无限制。

至此,JNDI的配置就结束了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值