`

【中间件】Tomcat下配置JNDI数据库连接池并使用

 
阅读更多
本文转自:http://www.blogjava.net/liver/archive/2009/05/31/279309.html
一、配置JNDI数据源
这一步有几种配置方式,比如直接修改Tomcat/conf/server.xml文件,但这样修改是全局的,个人不太喜欢这样的方式,本着的原则是能不全局就不全局,以保证项目能够尽量少的影响到其他项目,尽量少的进行修改。因此这里才用局部配置的方式。
把下边的代码保存为context.xml文件,并放到WebRoot/META-INF目录下。

[size=medium]<!-- 根据实际情况修改 -->
<Context>
    <Resource
        name="jdbc/test"
        type="javax.sql.DataSource"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/test"
        username="root"
        password="root"/>
</Context>[/size]

二、编辑web.xml文件,在里边添加如下内容
引用
<servlet>
        <servlet-name>Test</servlet-name>
        <servlet-class>com.nantian.jndi.Test</servlet-class>
        <init-param>
            <param-name>jndi</param-name>
            <param-value>java:comp/env/jdbc/test</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Test</servlet-name>
        <url-pattern>/Test</url-pattern>
    </servlet-mapping>

三、最后就是测试配置是否成功了
新建一个Servlet文件Test.java,写下如下内容

package com.nantian.jndi;

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.sql.DataSource;

public class Test extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
        String jndi = config.getInitParameter("jndi");
        try {
            Context ctx = new InitialContext();
            DataSource ds = (DataSource) ctx.lookup(jndi);
            Connection conn = ds.getConnection();
            System.out.println("连接获取成功:"+conn);
        } catch (NamingException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

这样就可以了测试了,这个例子连接的是mysql数据库,别忘记添加mysql驱动的jar包。部署工程,运行Tomcat,在服务器启动的时候就可以看到System.out.println("连接获取成功:"+conn);这条语句输出的信息了。
分享到:
评论

相关推荐

    tomcat 源代码

    Tomcat源代码主要分为几个关键部分:`catalina`(核心引擎)、`coyote`(HTTP/HTTPS协议处理)、`jasper`(JSP编译器)、`naming`(JNDI服务)、`jdbc-pool`(数据库连接池)和`common`、`server`、`shared`三个类库...

    javaservlet连接mysql数据库.pdf

    8. DataSource的使用:为了更好地管理数据库连接,可以使用JNDI(Java Naming and Directory Interface)来配置数据源,这样可以避免在代码中硬编码数据库连接信息。配置示例如下: ```xml &lt;name&gt;factory ***...

    武汉理工大学中间件实验报告

    5. **JNDI**:Java命名和目录接口是Java平台中查找和管理资源的接口,如数据库连接、邮件服务器配置等。JNDI使得应用程序可以通过统一的方式查找和绑定各种命名和目录服务。 6. **实验环境与配置**:这部分可能涉及...

    JSP/MYSQL/C3P0精品课程

    **JSP(JavaServer Pages)** ...这个课程可能涵盖了如何使用JSP创建动态网页,如何设计MySQL数据库,以及如何配置和使用C3P0连接池。对于初学者,这是一个很好的实践项目,可以深入理解Web开发的各个环节。

    sql Driver

    6. **JNDI(Java Naming and Directory Interface)**:在JSP应用服务器中,如Tomcat,可以使用JNDI查找数据库连接,将数据库连接配置在服务器的配置文件中,而不是硬编码在JSP页面中。 7. **事务管理**:JDBC也...

    行运2002 Oracle论坛

    在这个论坛中,用户可能讨论到如何在这些不同的应用服务器环境下配置Oracle数据库连接,例如设置数据源(DataSource)、处理JNDI查找,或者解决在不同服务器环境下遇到的兼容性和性能问题。此外,论坛也可能涵盖与...

    软件平台与中间件(javaEE)课件

    2. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一个查找和管理分布式系统资源的命名和目录服务,例如数据库连接池。 3. **EJB(Enterprise JavaBeans)**:EJB是JavaEE中的企业级组件模型,用于...

    Java.Web应用开发.J2EE和Tomcat第2版

    8. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一种查找和访问各种命名和目录服务的统一接口,常用于在J2EE环境中查找和绑定资源,如数据库连接池、邮件服务器等。 9. **JTA(Java Transaction ...

    apache-tomcat-8.5.64-src.zip

    通过研究源码,你可以了解到Tomcat如何处理HTTP请求,如何管理Web应用程序的生命周期,以及如何实现会话管理、安全性、连接池等关键功能。这对于Java Web开发者来说是一个宝贵的学习资源,特别是对于那些希望深度...

    oracle的JDBC驱动程序

    4. **JDBC Data Source**:这是符合JNDI(Java Naming and Directory Interface)的连接池驱动,通常用于应用服务器环境中,如WebLogic或Tomcat。它提高了性能和可管理性。 接下来,我们来看看如何使用Oracle JDBC...

    《J2EE专业项目实例开发》源代码

    6. **JNDI(Java Naming and Directory Interface)**:JNDI提供了查找和管理分布式系统资源的接口,例如数据库连接池、邮件服务器等。通过JNDI,开发者可以学习如何在应用中查找和绑定服务。 7. **Web容器与应用...

    ddth-tsc-cassandra-0.2.1.zip

    JNDI(Java Naming and Directory Interface)助手则帮助开发者在Web容器中注册和查找资源,例如数据库连接池、邮件服务器配置等。 "cloudbees-web-container-extras-master"可能是一个包含源代码的主分支,用户...

    至诚java ee实验报告

    5. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一个接口,使得Java程序可以查找和访问各种命名和目录服务,如数据库连接池、邮件服务器等。 6. **JMS(Java Message Service)**:JMS是Java EE的...

    j2EE实验课作业

    7. **JNDI(Java Naming and Directory Interface)**:JNDI用于查找和绑定应用中的资源,如数据库连接池。在实验中,学生可能需要了解如何使用JNDI来获取数据库连接。 8. **JTA(Java Transaction API)和JPA...

    EJB3使用说明中文版

    - **Oracle9i 数据源的配置**:同样需要定义连接池等信息。 **6.3 实体 Bean 发布前的准备工作**: - 确保数据源配置正确。 - 实体类和配置文件准备就绪。 **6.4 单表映射的实体 Bean**: - 定义实体类,使用 `@...

    问卷调查系统说明文档

    为了方便数据库连接的获取和管理,可以设计一个工具类,该类使用连接池技术来管理数据库连接,提高资源利用率。 - **连接池技术**:利用连接池技术来管理数据库连接,减少频繁创建和关闭数据库连接带来的性能开销。 ...

    J2EE类库

    7. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一个接口,用于查找和管理应用程序的资源,如数据库连接池、邮件服务器配置等。它允许应用在运行时动态查找和绑定资源。 8. **JTA(Java ...

Global site tag (gtag.js) - Google Analytics