`
小嘴冰凉
  • 浏览: 455929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat6.0数据源JNDI配置

    博客分类:
  • jndi
阅读更多
<Context path="/demo" docBase="demo"
        debug="5" reloadable="true" crossContext="true">
    <!-- maxActive: Maximum number of dB connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to -1 for no limit.
         -->

    <!-- maxIdle: Maximum number of idle dB connections to retain in pool.
         Set to -1 for no limit.  See also the DBCP documentation on this
         and the minEvictableIdleTimeMillis configuration parameter.
         -->

    <!-- maxWait: Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         -->

    <!-- username and password: MySQL dB username and password for dB connections  -->

    <!-- driverClassName: Class name for the old mm.mysql JDBC driver is
         org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
         Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
         -->
   
    <!-- url: The JDBC connection url for connecting to your MySQL dB.
         The autoReconnect=true argument to the url makes sure that the
         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
         connection.  mysqld by default closes idle connections after 8 hours.
         -->
  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/test_lzy?autoReconnect=true"/>
</Context>
-------------------------------------------------------------------------------------

=======================================================================================
在Java Web开发中都要与数据库打交道,为了不频繁地打开和关闭数据库,以减少数据库操作负荷,可使数据库在开发过程中保持打开状态,在这里我们采用配置数据源的方式(JNDI),而不是传统地JDBC方式。下面就针对常规型的MySQL5.0.15和Tomcat6.0的数据源的基本配置进行简单的介绍:
  首先声明,如果数据源没有配置好的话,在开发过程中会抛出诸如下列异常等:
  1、org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
  2、Caused by: java.sql.SQLException: No suitable driver
  3、Name jdbc is not bound in this context
现在开始讲下如何配置好数据源同时也是解决上述异常的办法:
方案一:
  步骤一、在Tomcat6.0解压目录conf下找到context.xml,在其中的<Context></Context> 中加入如下代码(要根据自己的情况稍加修改):
<Resource name="jdbc/TestDB"  auth="Container" type="javax.sql.DataSource" password="localhost" username="root"  driverClassName="org.gjt.mm.mysql.Driver"  url="jdbc:mysql://localhost/myznt"  maxActive="100"  maxIdle="30"  maxWait="5000"/>
  步骤二、在工程应用中/WEB-INF/下的web.xml中加入如下代码(要根据自己的情况稍加修改):
<resource-ref>
    <description>MySQL DataSource</description>
     <res-ref-name>jdbc/myznt</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>
步骤三、把MySQL-Connector-java-3.0.12-bin.jar(可换更高版本)加到Tomcat安装目录中的lib目录下和工程中的lib目录下。
    通过这三步,一个基本的数据源就配置成功了!
----------------------------------------------------------------------------------
方案二
步骤一、在Tomcat6.0解压目录conf下找到server.xml,在其中的
<GlobalNamingResources></GlobalNamingResources>中加入如下代码(要根据自己的情况稍加修改):
<Resource name="jdbc/TestDB"  auth="Container" type="javax.sql.DataSource" password="localhost" username="root"  driverClassName="org.gjt.mm.mysql.Driver"  url="jdbc:mysql://localhost/myznt"  maxActive="100"  maxIdle="30"  maxWait="5000"/>
步骤二、在Tomcat6.0解压目录conf下找到context.xml,在其中的<Context></Context>中加入并修改成如下代码(要根据自己的情况稍加修改):
<Context path="/znt" debug="1" reloadable="true"  docBase="E:\EclipseWorkPlace\MyZNT\WebRoot">
<ResourceLink global="jdbc/myznt" name="jdbc/myznt" type="javax.sql.Datasource"/>
................<!--此间可能有系统其它自配的内容,可不管-->
</Context>
步骤三、在工程中/WEB-INF/下的web.xml中加入如下代码(要根据自己的情况稍加修改):
<resource-ref>
    <description>MySQL DataSource</description>
     <res-ref-name>jdbc/myznt</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>
步骤四、把MySQL-Connector-java-3.0.12-bin.jar(可换更高版本)加到Tomcat安装目录中的lib目录下和工程中的lib目录下。
   通过以上四步就好了!
-----------------------------------------------------------
方案三(具有不稳定性,慎用)
步骤一、在Tomcat6.0解压目录conf下找到server.xml,在其中的<Host></Host>中加入如下代码(要根据自己的情况稍加修改):
<Context path="/znt" docBase="E:\EclipseWorkPlace\MyZNT\WebRoot"
  debug="5" reloadable="true" crossContext="true">

<Logger className="org.apache.catalina.logger.FileLogger"
     prefix="localhost_MysqlTest_log." suffix=".txt"
     timestamp="true"/>
<Resource name="jdbc/myznt"  auth="Container" type="javax.sql.DataSource" password="localhost" username="root"  driverClassName="org.gjt.mm.mysql.Driver"  url="jdbc:mysql://localhost/myznt"  maxActive="100"  maxIdle="30"  maxWait="5000"/>
</Context>
步骤二、在工程中/WEB-INF/下的web.xml中加入如下代码(要根据自己的情况稍加修改):
<resource-ref>
    <description>MySQL DataSource</description>
     <res-ref-name>jdbc/myznt</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>
步骤三、把MySQL-Connector-java-3.0.12-bin.jar(可换更高版本)加到Tomcat安装目录中的lib目录下和工程中的lib目录下。
    通过以上三步,大部分时候还是起作用的,但有时会出现异常,因此不建议使用。
    以上几种方案在实践中经受了测试,方案一和二比较稳定,方案三最好别用,同时只是进行了大致地归纳,其中的哪些地方没有必要或哪里欠妥还没有去测试,望读者进行批评指正。
--------------------------------------------------------
Tomcat链接数据源的基本代码
Context initContext;
try {
    initContext = new InitialContext();
    Context envContext  = (Context)initContext.lookup("java:/comp/env");
    DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
    Connection conn = ds.getConnection();
    Statement stmt = conn.createStatement();
    ResultSet set = stmt.executeQuery("SELECT id,name,age FROM user_lzy");
    while(set.next()){
System.out.println(set.getString("name"));
    }
    //etc.
} catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

         
分享到:
评论

相关推荐

    tomcat6.0 配置jndi

    在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...

    tomcat6.0 数据源配置

    标题“Tomcat6.0数据源配置”涉及的是在Apache Tomcat 6.0版本中设置和管理数据库连接池的过程。Tomcat作为一个流行的开源Java应用服务器,提供了多种数据源配置方式,以支持Web应用程序高效、安全地访问数据库。在...

    tomcat 6.0 数据源的配置

    在Java应用服务器如Tomcat 6.0中,数据源的配置是一项至关重要的任务,因为它允许应用程序通过JNDI(Java Naming and Directory Interface)查找并使用数据源来操作数据库。数据源(DataSource)是一个接口,它提供...

    tomcat6.0连接通过JNDI连接mysql实例

    Tomcat 6.0 中通过 JNDI 连接 MySQL 实例需要进行详细的配置和设置。本文将对 Tomcat 6.0 中的 JNDI 连接 MySQL 实例进行详细的介绍和解释。 配置 JNDI 资源 在 Tomcat 6.0 中,需要在 `META-INF/context.xml` ...

    tomcat6.0中配置JNDI的DBCP连接

    在Java应用服务器中,如Tomcat 6.0,配置JNDI(Java Naming and Directory Interface)的DBCP(Database Connection Pool)连接池是管理数据库连接的重要步骤。JNDI是一个标准接口,允许应用程序查找和访问命名服务...

    Tomcat6.0 JNDI数据源经典实例

    总结来说,这个Tomcat 6.0 JNDI数据源经典实例提供了从配置到使用的全过程,包括了必要的文件和脚本,便于开发者理解和实践JNDI数据源在实际项目中的应用。正确配置和使用JNDI数据源能有效管理和优化数据库连接,...

    Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

    本文将详细讲解如何在Tomcat 6.0版本中配置JNDI(Java Naming and Directory Interface)数据源,这个过程与Tomcat 5.5版本基本相同。JNDI允许应用通过一个统一的接口来查找和访问资源,如数据库连接池,从而提高...

    Tomcat6.0数据源配置[文].pdf

    在本文中,我们将深入探讨如何在Tomcat 6.0中配置数据源,这是一个关键的步骤,对于任何基于Java的应用程序来说,特别是那些依赖于数据库的Web应用。数据源的配置使得应用程序能够有效地管理和访问数据库连接,提高...

    apache-tomcat6.0-tomcat+配置教程

    `Context`元素下的`Resource`和`ResourceLink`可以用来配置JNDI(Java Naming and Directory Interface)资源,如数据源和邮件会话。 10. **性能优化** 通过调整JVM参数(如`JAVA_OPTS`),设置内存大小,以及...

    Tomcat 6.0配置数据源(DBCP)和JNDI使用

    本教程将详细讲解如何在Tomcat 6.0中配置数据源(DBCP)以及如何利用JNDI(Java Naming and Directory Interface)进行服务查找。首先,我们需要了解这两个概念的基础知识。 DBCP(Database Connection Pool)是...

    tomcat6.0JNDI连接数据库.

    至于`tomcat6.0JNDI连接数据库`这个文件,可能是包含具体配置步骤的文档或者示例代码。如果遇到问题,可以查阅这个文件来获得帮助。 总结一下,Tomcat 6.0通过JNDI连接数据库的步骤包括:配置`server.xml`中的数据...

    Tomcat6.0配置数据源

    ### Tomcat 6.0 数据源配置详解 在Java Web开发中,数据库连接管理是非常重要的环节之一。为了提高效率并避免频繁地打开和关闭数据库连接,通常会采用配置数据源的方式来管理这些连接。本文将详细介绍如何在Tomcat ...

    tomcat6.0数据库连接池驱动

    Tomcat 6.0数据库连接池驱动的使用,涉及到的主要知识点包括:数据库连接池的概念与作用,Tomcat内置的数据源实现(DBCP和C3P0),数据源的配置方法,JNDI的使用,以及在Java代码中获取和释放数据库连接。...

    tomcat 6.0 64位

    4. **JNDI(Java Naming and Directory Interface)**:提供了命名和目录服务,用于查找和管理资源,如数据源或邮件会话。 5. **安全管理**:支持角色基础的访问控制(RBAC),可以配置不同角色的权限。 6. **热部署...

    tomcat6.0官方文档文档

    这里提供了使用JNDI配置数据源的实例,涵盖了不同数据库(如MySQL、Oracle等)的连接池配置,帮助开发者快速集成数据库。 八、SSL配置(ssl-howto.html) SSL(Secure Socket Layer)用于加密网络通信,确保数据...

    Tomcat6.0压缩包

    8. **JNDI服务**:Tomcat提供了JNDI(Java Naming and Directory Interface)服务,用于查找和绑定资源,如数据源、邮件会话等。 9. **性能优化**:调整`conf/server.xml`中的线程池大小、最大请求队列长度等参数,...

    tomcat 6.0 lib jar

    3. **JNDI(Java Naming and Directory Interface)**:`jndi.jar`提供了对命名和目录服务的访问,使得应用程序可以查找和绑定资源,比如数据源。 4. **JTA(Java Transaction API)**:`jta.jar`包含了处理分布式...

    Tomcat6.0+MyEclipse6.0+mysql5.0数据库连接池配置!.pdf

    在上面的Java代码中,我们使用了JNDI(Java Naming and Directory Interface)查找数据源,并通过数据源获取数据库连接。`java:comp/env/jdbc/test`是JNDI查找路径,对应于`context.xml`中定义的数据源。 总结来说...

Global site tag (gtag.js) - Google Analytics