`
HEJ.lyne
  • 浏览: 25949 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于JNDI

阅读更多
JNDI:
    JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),这里引用一下来自zhaosg198312的博客中说到的内容:
    首先是在JNDI未应用之前的访问数据库的方式:
//source:http://blog.csdn.net/zhaosg198312/archive/2009/03/11/3979435.aspx
Connection conn=null;
try {
  Class.forName("com.mysql.jdbc.Driver",
                true, Thread.currentThread().getContextClassLoader());
  conn=DriverManager.getConnection("jdbc:mysql://MyDBServer?user=qingfeng&password=mingyue");
  /* 使用conn并进行SQL操作 */
  ......
  conn.close();
} 
catch(Exception e) {
  e.printStackTrace();
} 
finally {
  if(conn!=null) {
    try {
      conn.close();
    } catch(SQLException e) {}
  }
}

    这种方法的缺点比较明显,就是参数不可动态配置,如数据库地址、用户名、密码等。在应用JNDI的时候,首先可以在JBoss的目录\server\default\deploy下面的文件mysql-ds.xml中配置数据源:
//source:http://blog.csdn.net/zhaosg198312/archive/2009/03/11/3979435.aspx
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/lw</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>rootpassword</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
</local-tx-datasource>
</datasources>

    然后就可以在代码中通过下面的方式去引用数据源:
//source:http://blog.csdn.net/zhaosg198312/archive/2009/03/11/3979435.aspx
Connection conn=null;
try {
  Context ctx=new InitialContext();
  Object datasourceRef=ctx.lookup("java:MySqlDS"); //引用数据源
  DataSource ds=(Datasource)datasourceRef;
  conn=ds.getConnection();
  /* 使用conn进行数据库SQL操作 */
  ......
  c.close();
} 
catch(Exception e) {
  e.printStackTrace();
} 
finally {
  if(conn!=null) {
    try {
      conn.close();
    } catch(SQLException e) { }
  }
}

    "JNDI在满足了数据源配置的要求的基础上,还进一步扩充了作用:所有与系统外部的资源的引用,都可以通过JNDI定义和引用。"
分享到:
评论

相关推荐

    关于JNDI测试项目

    JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试...

    jndi-1_2_1.zip_jndi_jndi-1.2.1.jar

    标题中的"jndi-1_2_1.zip_jndi_jndi-1.2.1.jar"表明这是一个关于JNDI的版本1.2.1的开源软件包,其中包含了一个名为"jndi-1.2.1.jar"的JAR文件。这个JAR文件包含了JNDI库的所有实现,使得开发者可以在他们的Java项目...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all.zip

    标题"JNDI-Injection-Exploit-1.0-SNAPSHOT-all.zip"暗示了这是一个关于JNDI注入漏洞的exploit工具包,版本为1.0 SNAPSHOT,可能包含了多个利用示例或攻击代码。"all"可能表示该压缩包包含了所有相关的组件或测试...

    java JNDI总结

    在进行Java开发时,经常会遇到关于JNDI配置的相关问题。下面将详细介绍JNDI的基本概念、配置方法以及如何在实际开发中应用它来管理数据库连接等资源。 ##### 1. JNDI的基本概念 JNDI是一种用于访问命名和目录服务...

    JNDI支持包

    - `README.txt` 可能提供了关于JNDI库的基本介绍、使用指南或者注意事项,帮助开发者快速了解和开始使用。 - `examples` 目录可能包含了一些使用JNDI的示例代码,这对于学习和理解JNDI的工作原理非常有帮助。 - `doc...

    jndi指南.zip

    7. **beyond** - 这个目录可能包含了关于JNDI高级话题的信息,如扩展和优化。 8. **getStarted** - 对于初学者来说,这可能是一个入门指南,介绍了如何开始使用JNDI。 9. **objects** - 可能讨论了如何在JNDI中...

    kettler连接oracle 12c数据库(目前只能用JNDI)

    - 使用文本编辑器打开 Kettler 的配置文件,找到关于 JNDI 的配置部分。 - 如果 Kettler 配置文件中已有 JNDI 配置,则根据上述步骤进行相应的修改;如果没有,则需要新增配置项。 #### 四、验证连接 完成以上...

    JNDI介绍和学习资料

    关于JNDI的介绍和个人总结 还请多多指教 大家来分享学习 共同进步 谢谢

    jndi-tool JNDI服务利用工具

    "jndi-tool"是一个专门针对JNDI服务的利用工具,它可以被用来测试和利用JNDI相关的安全漏洞。此工具特别关注RMI和LDAP服务,这两种服务是JNDI常用的两种协议。RMI允许Java对象在不同的Java虚拟机之间进行远程调用,...

    Tomcat中JNDI原理

    ### Tomcat中JNDI原理详解 #### 一、引言 Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API。它为开发者提供了访问各种命名和目录服务(如DNS、LDAP等)的统一接口。在Tomcat...

    027-JNDI之初探 LDAP.pdf

    本文档提供了一个关于JNDI和LDAP的入门指南,涵盖了JNDI References的基础知识,LDAP协议的核心概念,包括命名模型、功能模型和安全模型,以及如何搭建和配置LDAP服务器。文档中的实例代码展示了如何利用Java技术栈...

    Hibernate 3.1+Tomcat 5.5.X(配置JNDI篇)

    【描述】:文章介绍了在Tomcat 5.5.X版本中如何配置Hibernate 3.1,特别是关于JNDI(Java Naming and Directory Interface)的设置方法。 【标签】:“hibernate”,“tomcat” 【内容】: 在Hibernate 3.1和...

    JNDIDemo 以及相关文档

    2. **目录服务**:目录服务是命名服务的扩展,它不仅存储对象的名称,还存储关于对象的属性信息。例如,用户可能会在目录服务中查找一个邮件服务器,并获取其主机名、端口等详细信息。 3. **上下文(Context)**:...

    jndi所依赖的jar包

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种不同的命名和目录服务提供了统一的接口。在Java应用程序中,JNDI允许开发者查找和绑定对象,这些对象可以是数据源、...

    JNDI示例整合SSH

    **标题:“JNDI示例整合SSH”** 在IT领域,`JNDI`(Java Naming and Directory Interface)是Java平台提供的一种标准接口,用于访问命名和目录服务。它允许应用程序查找和操作不同类型的网络资源,如数据源、EJB等...

    用JNDI绑定DataSource

    在Java应用中,JNDI(Java Naming and Directory Interface)是一种标准的接口,它允许应用程序查找和使用资源,如数据源(DataSource),而无需直接在代码中硬编码这些资源的位置或配置信息。JNDI的核心理念是将...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all

    《深入解析JNDI注入攻击与防御》 Java Naming and Directory Interface (JNDI) 是Java平台中用于访问各种命名和目录服务的API,它提供了一种统一的方式来查找和访问不同类型的网络资源,如数据库、对象、服务器等。...

    jndi数据库查询例子

    **JNDI(Java Naming and Directory Interface)数据库查询例子** JNDI是Java平台中用于查找和绑定资源的接口,它允许程序通过名称查找数据源、对象服务等。在Java应用中,特别是企业级Java应用中,JNDI被广泛用于...

Global site tag (gtag.js) - Google Analytics