`
pterodactyl
  • 浏览: 766519 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaJNDI

    博客分类:
  • java
阅读更多

 

  一直都JNDI这个名字,可是一直都没有去研究过,因为工作中一直都没用到。。。
    这次面试的时候用到了。。。 于是乎,找来例子练练手。。

    看了Tomcat官方的说明,顺便看到 々上善若水々 的文章,理解了整个意思。
    下面将我的例子写在这里,只希望下次面试的时候,我可以说,来我博客看吧,这些我都会。。
在server.xml中添加:
 
          < Context  path ="/connjndi"  docBase ="D:\workspace\TestJndi\WebRoot"  reloadable ="true" >

            
< Resource  name ="jdbc/SampleData"  auth ="Container"  type ="javax.sql.DataSource"
               maxActive
="100"  maxIdle ="30"  maxWait ="10000"
               username
="sampledata"  password ="password"  driverClassName ="oracle.jdbc.OracleDriver"
               url
="jdbc:oracle:thin:@//localhost:1521/mondrian" />
         
</ Context >

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

在web.xml中添加:
    
     < description > Oracle Test App </ description >
    
< resource-ref >
      
< description > DB Connection </ description >
      
< res-ref-name > jdbc/SampleData </ res-ref-name >
      
< res-type > javax.sql.DataSource </ res-type >
      
< res-auth > Container </ res-auth >
    
</ resource-ref >

写一个简单的jsp测试了一下:
 1 <% @ page  import = " java.sql.*,javax.sql.*,javax.naming.* "   %>
 2
 3 <%
 4 Connection conn  =   null ;
 5 try
 6    {
 7     Context ctx  =   new  InitialContext(); 
 8     DataSource ds  =  (DataSource)ctx.lookup( " java:comp/env/jdbc/SampleData " );
 9     conn  =  ds.getConnection();
10     System.out.println( " connection pool connected !! " );   
11   }
  catch  (NamingException e)  {
12     System.out.println(e.getMessage());
13   }
  catch  (SQLException e)  {
14     System.out.println(e.getMessage());
15     e.printStackTrace();
16   }
finally
17    {
18     conn.close();
19   }

20   %>

    我就是这样连接成功了。
    
    写的时候还是看了下々上善若水々 的博客,总感觉他的写得比较全,而我总感觉写不出比他好的,又不能写出和他不同的地方。。就这样子啦。。


PS:在查资料的时候,看到在CSDN中有位朋友谈到了JNDI的用处:
    JNDI不止用于数据源,其可以用于存储和获得任何类型的已命名的java对象等等.   
    
    如果使用JDBC有thin和oci两种连接方式:   
    
    [先说thin]   
    打开数据库连接方式:DriverManager.getConnection     

1       DriverManager.registerDriver( new    oracle.jdbc.OracleDriver());   
2     
3           Connection   myConnection    =    DriverManager.getConnection(   
4                " jdbc:oracle:thin:@test2000:1521:orac " ,      // orac为oracle的SID   
5                " user " ,   
6                " password "    
7           ); 
  
    
    或者用前面给出的那个   
    OracleDataSource   myODS   =   new   OracleDataSource();   //其属性简单明了,不难掌握   
    Connection   myConnection   =   myODSgetConnection("user","password");   
    [再说OCI](可以使连接池中有多个缓冲的连接)   
 1     OracleOCIConnectionPool   myOOCP    =     new    OracleOCIConnectionPool();   
 2     
 3          //    set   the   attributes   for   the   physical   database   connections   
 4         myOOCP.setServerName( " test2000 " );   
 5         myOOCP.setDatabaseName( " ORCL " );   
 6         myOOCP.setDriverType( " oci " );   
 7         myOOCP.setPortNumber( 1521 );   
 8         myOOCP.setUser( " store_user " );   
 9         myOOCP.setPassword( " store_password " );   
10     
11          //    set   the   values   for   the   dynamic   attributes   of   myOOCP   
12         Properties   myProperties    =     new    Properties();   
13         myProperties.put(OracleOCIConnectionPool.CONNPOOL_MIN_LIMIT, " 5 " );   
14         myProperties.put(OracleOCIConnectionPool.CONNPOOL_MAX_LIMIT, " 10 " );   
15         myProperties.put(OracleOCIConnectionPool.CONNPOOL_INCREMENT, " 2 " );   
16         myProperties.put(OracleOCIConnectionPool.CONNPOOL_TIMEOUT, " 30 " );   
17         myProperties.put(OracleOCIConnectionPool.CONNPOOL_NOWAIT, " true " );   
18         myOOCP.setPoolConfig(myProperties);   
19     
20          //    request   a   connection   instance   from   myOOCP   and   store   
21          //    the   connection   instance   in   myConnection   
22         OracleOCIConnection   myConnection    =    (OracleOCIConnection)   myOOCP.getConnection(); 
23

    这个就当是个引子,之后对JNDI有个深入的了解和认识。。。。
分享到:
评论

相关推荐

    java jndi的使用

    Java JNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的一组API。它允许Java开发者在应用程序中查找和绑定资源,如数据源、EJB(Enterprise JavaBeans)、邮件服务器等。JNDI的核心...

    java JNDI总结

    ### Java JNDI总结 #### 一、JNDI简介 **JNDI**(Java Naming and Directory Interface)是Java平台中的一个API,用于访问命名和目录服务,这些服务可以存储对象引用及其名称。JNDI的主要作用在于提供了一种在...

    JavaJNDI 数据链接池及 属性文件读取数据链接信息

    JavaJNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的一组API,它允许Java应用程序查找和管理分布在不同网络环境中的资源。数据连接池(Connection Pool)是Java应用中用于管理...

    javaJNDI连接数据库

    ### Java JNDI 连接数据库详解 #### JNDI简介 Java Naming and Directory Interface (JNDI) 是一种在Java环境中访问命名和目录服务的API。它为开发人员提供了查找和引用远程对象的标准方法,这包括数据库资源、消息...

    基于JavaJNDI的LDAP Demo

    基于Java JNDI 操纵LDAP的基础实现,包括LDAP连接相关生命周期,认证的两种策略demo,条目的操作,schema的基础操作包括(attributeDefinition\objectDefinition\)但未包含相关syntaxDefinition的操纵. 没有资源分的朋友...

    JAVA JNDI免证书修改AD域密码.zip

    在IT领域,特别是Java开发中,`JAVA JNDI免证书修改AD域密码`是一个重要的主题,涉及到企业级应用与Active Directory(AD)域服务的交互。Active Directory是微软提供的目录服务,用于集中管理网络资源,如用户账户...

    Java Jndi数据连接池,sql2000或者sql2005数据库

    DataSource source = (DataSource) ic.lookup("java:comp/env/jdbc/jndidemo"); dbcon = source.getConnection(); 需要导的包 import javax.naming.Context; import javax.naming.InitialContext; import ...

    java 采用JNDI访问数据库(三种方法)

    Java 通过JNDI(Java Naming and Directory Interface)访问数据库是一种常见的做法,它提供了一种标准的方法来查找和管理资源,如数据源、EJB、邮件服务器等。JNDI在企业级应用中广泛使用,因为它允许应用程序与...

    JNDI Java操作示例

    ### JNDI Java操作示例解析 #### 一、引言 JNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的API。它提供了一种查找和定位应用程序所需的资源(如数据库连接、消息队列、EJBs等)...

    JNDI详细配置解析

    JNDI(Java Naming and Directory Interface,Java命名和目录接口)是Java平台提供的一套API,用于在Java应用程序中访问命名和目录服务。它允许开发者以统一的方式查找、绑定和命名对象。本文将详细介绍JNDI在Tomcat...

    三种方式实现java远程调用(rmi),绝对可用

    在本文中,我们将深入探讨三种不同的RMI实现方法:原始方式、Spring框架集成以及JNDI(Java Naming and Directory Interface)。 ### 方式一:原始方式 原始的Java RMI方式是基于Java的标准API实现的,主要包括...

    JNDI 详细解读

    JNDI (Java Naming and Directory Interface) 是 Java 命名和目录接口的简称,自 Java 2 平台企业版问世以来一直是核心技术之一。它为开发者提供了一个统一的接口,用于查找、获取和管理各种分布式环境中的命名资源...

    JNDI配置原理详解.doc

    JNDI(Java Naming and Directory Interface)是Java平台的一部分,它允许开发人员访问命名服务,从而可以存储和检索应用程序组件名称和服务之间的映射关系。本文将详细介绍JNDI配置原理,并通过具体的示例帮助读者...

    初学jndi笔记

    **JNDI**(Java Naming and Directory Interface)是Java平台的一部分,用于开发与名称和服务目录进行交互的应用程序。它允许Java应用程序查找并使用远程对象和服务。在J2EE环境中,JNDI提供了一种标准化的方式来...

    JNDI的应用

    JNDI是Java Naming and Directory Interface(JAVA命名和目录接口)的英文简写,它是为JAVA应用程序提供命名和目录访问服务的API(Application Programing Interface,应用程序编程接口)。

    JNDI调用分布式EJB3 通用接口

    在IT行业中,Java Naming and Directory Interface (JNDI) 是一个关键的技术,它提供了一种标准的方法来查找和访问各种命名和目录服务。EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于构建可部署在服务器...

    JNDI配置文件

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种服务提供了一个统一的接口,如数据库连接、邮件服务等。在Java应用程序中,JNDI常用于查找和绑定资源,如数据源、...

    java连接池jtds技术

    在这个文件中,你需要配置JNDI(Java Naming and Directory Interface)名称、数据库URL、用户名、密码、连接池大小等信息。 3. **DBConn.java**:这可能是你的应用中负责获取和释放数据库连接的类。在该类中,通过...

    com.sun.jndi.providerutil.jar

    JNDI是Java平台提供的一种标准服务接口,用于访问命名和目录服务,它允许应用程序查找、存储和管理各种类型的数据,如对象、配置信息等。本文将深入探讨`com.sun.jndi.providerutil.jar`在JNDI框架中的作用,以及...

    JAVA修改AD域密码_免证书

    Java开发人员经常使用Java Naming and Directory Interface (JNDI)来与AD进行交互。在本文中,我们将深入探讨如何使用Java JNDI来修改AD域密码,并重点讲解如何实现免SSL验证的方式。 首先,让我们了解JNDI。JNDI是...

Global site tag (gtag.js) - Google Analytics