`

jndi 配置及使用

    博客分类:
  • jdbc
阅读更多

一 在tomcat下jndi有多种配置方式:

    (1)全局配置:

             在tomcat的conf目录下的context.xml文件中加入如下配置:

            

<Resource name="jdbc/mysql" auth="Container" 
			   type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="60" wait_timeout="18800" 
			   timeBetweenEvictionRunsMillis="300000" minEvictableIdleTimeMillis="600000"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/family?comautoReconnect=true&amp;failOverReadOnly=false"  
			   removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"/>

    配置项意义:

 

   

  1. * driverClassName - 所使用的JDBC驱动类全称。  
  2. * maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。  
  3. * maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。  
  4. * maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。  
  5. * password - 传给JDBC驱动的数据库密码。  
  6. * url - 传给JDBC驱动的连接URL。  
  7. * user - 传给JDBC驱动的数据库用户名。  
  8. * validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。  如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句

    (2)局部配置:

         在应用服务的META-INFO下创建context.xml并且内容如下:

        

<?xml version="1.0" encoding="UTF-8"?>
    <Context>       
    	<Resource  
          name="jdbc/mysql"  
          auth="Container"  
          type="javax.sql.DataSource"  
          password="root"  
          username="root"  
          driverClassName="com.mysql.jdbc.Driver"  
          url="jdbc:mysql://localhost:3306/family?comautoReconnect=true&amp;failOverReadOnly=false"  
          maxIdle="30"  
          maxWait="5000"  
          maxActive="100"  
          factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  
          />  
    </Context>  

   (3) 还有一种方式是修改tomcat的server.xml,此方式不推荐,所以在此处就不在叙述

 

 

    针对以上配置需要在应用的web.xml添加如下配置:

   

	<resource-ref>  
	  <description>JNDI DataSource</description>  
	  <res-ref-name>jdbc/mysql</res-ref-name>  
	  <res-ref-type>javax.sql.DataSource</res-ref-type>  
	  <res-auth>Container</res-auth>  
	</resource-ref> 

    针对以上web.xml中的配置,网上很多描述要配置,本人把(1),(2)两种情况在不配置web.xml的情况下均能正常使用数据源

 

二 在web项目中配置好了数据源,可以做如下使用
    (1) 直接使用数据源,操作如下代码:
Context ctx = new InitialContext();  
		DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");  
		System.out.println(ds.getClass().getSimpleName());
		Connection conn = ds.getConnection();
    注意:此段代码不能使用application运行,不然会报错(数据源配置在tomcat或web容器上)
    (2)在spring中使用,有如下两种配置方式
<jee:jndi-lookup id="dataSource" jndi-name="java:/comp/env/jdbc/sqlserver"/>
    

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="java:/comp/env/jdbc/sqlserver"></property>
    </bean>
 

 

分享到:
评论

相关推荐

    JNDI配置文件

    JNDI配置文件是设置这些资源定位的关键部分。 ### JNDI配置文件详解 1. **JNDI的基本概念** - **命名服务**:存储和检索对象的名字与引用之间的映射关系。 - **目录服务**:扩展了命名服务,提供了更丰富的属性...

    jndi配置

    ### JNDI配置步骤 1. **服务器配置**:在Java EE服务器的配置文件(如Tomcat的context.xml或server.xml)中定义JNDI资源。 2. **应用配置**:在Web应用的web.xml文件中,可以通过`&lt;resource-ref&gt;`元素声明对JNDI...

    如何在spring中等价配置得到原本由jndi配置实现的数据源

    1. **理解JNDI配置**: JNDI是一种标准服务,用于在分布式环境中查找和绑定对象。在Web应用中,数据源可以通过JNDI名字在全局命名空间中注册,然后应用通过这个名字查找并获取数据源。 2. **Spring中的数据源配置*...

    JNDI配置数据源在java web开发中的使用

    本篇文章将详细介绍如何使用JNDI配置数据源进行数据库连接。 1. **JNDI概述** JNDI提供了一种统一的接口来访问命名和目录服务,比如DNS、LDAP等。在Java Web环境中,它常用来查找和绑定应用程序所需的资源,如数据...

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    1.1 Apache Tomcat各版本 1.2 Apache Tomcat Versions 1.3 Java事务处理总结 1.4 JavaBean中使用JDBC...1.22 JNDI配置原理详解 1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四种类型 1.25 resource-ref元素

    JNDI配置详细介绍

    ### JNDI配置在Tomcat中的详细介绍 JNDI(Java Naming and Directory Interface)是Java平台的一个标准接口,用于访问命名和目录服务。在企业级应用中,JNDI常被用于查找和引用各种资源,如数据库连接、消息队列等...

    JNDI配置原理详解.doc

    #### 三、JNDI配置问题及解决方案 在开发过程中,尤其是在非服务器环境下的独立应用程序中使用JNDI时,开发者经常会遇到`NoInitialContextException`异常。这是因为初始化上下文时缺少必要的配置信息。通常情况下,...

    jndi连接数据库配置方法

    通过理解JNDI的基本原理和配置方法,开发者能够更灵活地管理和使用数据库资源。提供的压缩包文件可能包含了详细步骤、示例代码或者配置模板,可以帮助你更好地理解和实践JNDI连接数据库的过程。

    eclipse与glassfish3.1.1使用配置-连接池配置-JNDI配置[归纳].pdf

    本文档旨在指导读者如何在 Eclipse 中配置 GlassFish 3.1.1,实现连接池配置和 JNDI 配置。同时,也会解决在部署过程中可能出现的异常。 一、GlassFish 3.1.1 简介 GlassFish 是一个开源的 Java EE 应用服务器,由 ...

    resin jndi配置

    ### Resin中的JNDI配置详解 在Java开发领域,JNDI(Java Naming and Directory Interface)是一个重要的概念,它为应用程序提供了一种查找和访问各种类型命名对象的方法,包括远程对象、数据库连接等。而Resin作为...

    JNDI详细配置解析

    #### 二、JNDI配置方式概述 JNDI在Tomcat中有三种常见的配置方式: 1. **全局配置**:在`context.xml`中进行配置,适用于所有Web应用程序。 2. **局部配置**(第一种):在`server.xml`的`&lt;host&gt;`标签内部进行配置...

    tomcat6.0 配置jndi

    【标题】:“Tomcat6.0配置JNDI” 在Java Web开发中,Tomcat作为常用的Servlet容器,经常被用于部署和运行Java EE应用程序。JNDI(Java Naming and Directory Interface)是Java平台的一项服务,它允许应用程序通过...

    jboss配置MySql的JNDI

    本文将深入解析如何在JBoss中配置MySQL的JNDI数据源,确保应用程序能够高效、稳定地访问数据库资源。 ### JBoss与JNDI的关联 JBoss作为一个高性能的Java应用服务器,提供了丰富的功能支持企业级应用开发。JNDI作为...

    JNDI数据源配置

    本文将详细介绍如何使用JNDI配置不同的数据库连接,并通过Tomcat服务器进行示例演示。 #### 二、JNDI简介 JNDI是一种标准的API,用于访问命名和目录服务。它允许开发者使用统一的方式在分布式环境中查找和引用远程...

    servlet+mysql的jndi配置

    ### servlet+mysql的jndi配置详解 #### 一、配置数据库连接池 数据库连接池是一种用于管理数据库连接的技术,可以提高应用访问数据库的效率。本文档主要介绍如何在基于servlet的应用中配置MySQL数据库连接池,并...

    配置 JNDI 数据源

    在Java应用开发中,JNDI(Java Naming and Directory Interface)是一种标准接口,用于查找和管理...通过理解JNDI的工作原理以及如何在Spring中配置和使用JNDI数据源,开发者能够更好地实现高效、安全的Java应用开发。

    jboss配置 jndi

    【JBoss配置JNDI详解】 在Java应用服务器中,JNDI(Java Naming and Directory Interface)是一个关键组件,用于查找...通过实践和研究,你可以更熟练地驾驭JBoss的JNDI配置,为你的企业级应用提供稳定、灵活的服务。

    EJB例子包含client以及jndi配置

    在标题"**EJB例子包含client以及jndi配置**"中,我们可以理解这是一个关于EJB应用的实例,它不仅包括了EJB服务器端的实现,还包含了客户端(client)的代码以及JNDI(Java Naming and Directory Interface)的配置。...

Global site tag (gtag.js) - Google Analytics