Tomcat jndi 数据库配置 连接池配置

本文介绍了如何在Tomcat 5.5中配置JNDI数据库连接池,包括在xxxxx.xml和web.xml中添加资源,设置DataSource参数,并将MySQL JDBC驱动放入lib目录。通过Context和InitialContext查找并使用JNDI连接数据库。

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

在Tomcat 5.5/conf/Catalina/localhost/xxxxx.xml(xxxxx.xml为你自己的web的配置xml文件) 中添加resource

         <Resource name="MYSQL"
         type="javax.sql.DataSource"
         driverClassName="com.mysql.jdbc.Driver"
         password="********"
         maxIdle="2"
         maxWait="5000"
         username="root"
         url="jdbc:mysql://localhost:3306/jnestore"
         maxActive="10"/>

以上是tomcat 5.5版本的配置,5.5版本只有这样陪才有效果,以前的版本可以按照paramter的方法添加;

Resource 一定要包含在<Context ......> </Context> 之间

在你的web的路近下,WEB-INF中找到web.xml,添加资源映射      

        <resource-ref>
            <description>connection</description>
            <res-ref-name>MYSQL</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
         </resource-ref>

把mysql的jdbc驱动.jar包放到tomcat的common/lib下去,也可以放到WEB-INF/lib下,

重新启动tomcat.

就可以用Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("java:comp/env/MYSQL");

Connection con = ds.getConnection(); 来连接数据库连接池

JNDI是J2EE中一个很重要的标准,通常我们是在J2EE编程中用到,Tomcat中提供了在JSP和Servelt中直接使用JNDI的方法,主要是通过dbcp连接池,下面谈一下我在Tomcat5.5中配置和使用JNDI的方法。本文的对象是对j2ee编程有所了解的读者,或者已经看过了我的Blog:tomcat的基本配置说明
一、先在自己应用程序WEB-INF目录下的web.xml添加以下语句:
<resource-ref>
     <descrtiption>引用资源说明</descrtiption>
     <res-ref-name>引用资源的JNDI名</res-ref-name>
     <res-type>引用资源的类名</res-type>
     <res-auth>管理者(Container)</res-auth><!--Container-容器管理 Application-Web应用管理-->
</resource-ref>
       然后在tomcat目录/conf/server.xml文件里相应的<Context>元素,看我的Blog:tomcat的基本配置说明
添加如下子元素:
<Resource name="引用资源的JNDI名" auth="Container" type="javax.sql.DataSource"
driverClassName="com.pointbase.jdbc.jdbcUniversalDriver(自己的jdbc驱动)"
url="jdbc:pointbase:server://localhost/acme(数据库连接url)"
username="root(用户名)" password="root(密码)" maxActive="20(连接池dbcp的相关配置)" maxIdle="10" maxWait="10000"/>
      注意,要把你的驱动拷到common/lib下,我用的是pointbase因此我拷的是pbclient44.jar到了common/lib下(对pointbase感兴趣的读者可以看我的另一篇文章pointbase数据库学习,里面也提到了我为什么是用pointbase数据库作为讲解)。
二、例子:以下是我的假设的项目ACMEWeb:
      在相应程序的web.xml里添加
<web-app ....>
      .....
     <resource-ref>
       <res-ref-name>jdbc/AcmeDB</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
     </resource-ref>
</web-app>
      然后再server.xml里修改:
   <Context path="/ACMEWeb" reloadable="true" docBase="E:/eclipseproject/ACMEWeb" workDir="E:/eclipseproject/ACMEWeb/work">
          <Resource name="jdbc/AcmeDB" auth="Container" type="javax.sql.DataSource" driverClassName="com.pointbase.jdbc.jdbcUniversalDriver" url="jdbc:pointbase:server://localhost/acme" username="root" password="root" maxActive="20" maxIdle="10" maxWait="10000"/>
</Context>
      建议你把上面的内容编写成为一个xml文件,拷到conf/Catalina/<主机名>/文件夹下,若有不懂的地方可以参考我的Blog:tomcat的基本配置说明 和tomcat的文档。

 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值