JNDI的专业解释,大家自行去网络搜索吧,这里就不啰嗦了。

单纯从使用角度看,可以简称把它看成一个key-value的“哈希资源”容器。给定一个string类型的key,可以把任何类型的value,放入这个容器(通过bind/rebind方法);其它地方需要使用该资源时,根据key就能取出该资源(通过lookup方法)

JNDI使用示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package jmyang.weblogic;
  
/**
 * <p>Title:JNDI示例(WebLogic环境) </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2012</p>
 * <p>Company:cnblogs </p>
 * @菩提下的杨过
 * @version 1.0
 */
  
import javax.naming.*;
import java.util.Hashtable;
  
public class JNDITest {
  
    static Context ctx = null;
  
    public static void test() {
        String key = "jmyang";
  
        //先绑定
        bind(key, "杨俊明");
  
        //再取出来
        String value = (String) lookUp(key);
  
        System.out.print(key + "=" + value);
    }
  
    /*
     *绑定
     */
    public static void bind(String name, String object) {
        Hashtable ht = new Hashtable();
        ht.put(Context.INITIAL_CONTEXT_FACTORY,
               "weblogic.jndi.WLInitialContextFactory");
        ht.put(Context.PROVIDER_URL, "t3://localhost:7001");
        try {
            ctx = new InitialContext(ht);
            ctx.rebind(name, object);
        } catch (NamingException e) {
            e.printStackTrace();
        } finally {
            try {
                ctx.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
  
    /*
     *
     */
    public static Object lookUp(String name) {
        Hashtable ht = new Hashtable();
        ht.put(Context.INITIAL_CONTEXT_FACTORY,
               "weblogic.jndi.WLInitialContextFactory");
        ht.put(Context.PROVIDER_URL, "t3://localhost:7001");
        try {
            ctx = new InitialContext(ht);
            Object object = ctx.lookup(name);
            return object;
        } catch (Exception e) {} finally {
            try {
                ctx.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

上述代码执行完以后,也可能通过weblogic控制台,查看jndi树来验证:

JDBC数据源,实际上,也是使用JNDI服务来访问的,下面是JDBC示例代码:(必须先在weblogic中创建数据源)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package jmyang.weblogic;
  
/**
 * <p>Title:JDBC示例(WebLogic环境) </p> 
 * <p>Description: </p> 
 * <p>Copyright: Copyright (c) 2012</p>
 * <p>Company:cnblogs </p>
 * @菩提下的杨过
 * @version 1.0
 */
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
import java.util.Hashtable;
  
public class JDBCTest {
  
    static final String webLogicServer = "t3://localhost:7001"; //weblogic服务器地址
    static final String webLogicINDIStr =
            "weblogic.jndi.WLInitialContextFactory"
  
    public static void test() {
        Connection myConn = null;
        DataSource ds = null;
        Context ctx = null;
  
        Hashtable ht = new Hashtable();
        ht.put(Context.INITIAL_CONTEXT_FACTORY, webLogicINDIStr);
        ht.put(Context.PROVIDER_URL, webLogicServer);
        try {
            ctx = new InitialContext(ht);
            ds = (javax.sql.DataSource) ctx.lookup("infoskysso"); //取得名为infoskysso的数据源(注:infoskysso要在weblogic中设置数据源)
        } catch (NamingException e) {
            e.printStackTrace();
        }
  
        Statement myStatement = null;
        ResultSet myResultSet = null;
  
        try {
            myConn = ds.getConnection();//建立连接
  
            myStatement = myConn.createStatement();
            myResultSet = myStatement.executeQuery(
                    "Select DEPTNO From DEPT where rownum<=10");
  
            while (myResultSet.next()) {
                System.out.println("DEPTNO=" + myResultSet.getInt("DEPTNO"));
            }
            myResultSet.close();
        } catch (SQLException e) {
            System.out.println("Error code = " + e.getErrorCode());
            System.out.println("Error message = " + e.getMessage());
        } finally {
              
            //关闭查询
            if (myStatement != null) {
                try {
                    myStatement.close();
                } catch (SQLException e) {
                    System.out.println("Error code = " + e.getErrorCode());
                    System.out.println("Error message = " + e.getMessage());
                }
            }
  
            //关闭连接
            if (myConn != null) {
                try {
                    myConn.close();
                } catch (SQLException e) {
                    System.out.println("Error code = " + e.getErrorCode());
                    System.out.println("Error message = " + e.getMessage());
                }
            }
        }
  
    }
}

附: weblogic中创建jdbc数据源的方法

weblogic下JNDI及JDBC连接测试(weblogic环境)的更多相关文章

  1. 在 windows 下搭建 IDEA + Spark 连接 Hive 的环境

    为了开发测试方便,想直接在 IDEA 里运行 Spark 程序,可以连接 Hive,需不是打好包后,放到集群上去运行.主要配置工作如下: 1. 把集群环境中的 hive-core.xml, hdfs- ...

  2. 大数据系列之数据仓库Hive命令使用及JDBC连接

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  3. jdbc:mysql:/// jdbc连接数据url简写方式

    正常情况下我们写jdbc连接本地mysql数据库的时候通常是这样写 jdbc:mysql:localhost:3306/数据库名 下面就是要提到的简单的方法 jdbc:mysql:///数据库名

  4. linux环境下使用jmeter进行压力测试

    linux环境下使用jmeter进行压力测试 linux环境下使用就meter进行压力测试: linux环境部署: 在Linux服务器先安装jdk: 2.以jdk-8u172-linux-x64.ta ...

  5. 帆软报表FineReport中数据连接之Weblogic配置JNDI连接

    1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...

  6. J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题

    J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题 2012年03月09 ...

  7. 测试jdbc连接下,mysql和mycat的吞吐性能

    最近一个项目需要数据库有较大的吞吐量,因为项目要求的访问量和数据量较大,决定采用一个数据库中间件来对数据库进行管理.经过一番查询,决定使用阿里的一个开源项目-mycat.因为mycat基于mysql, ...

  8. WebLogic使用总结(三)——WebLogic配置JNDI数据源

    一.在WebLogic新建针对Oracle数据库的JNDI数据源 进入weblogic管理控制台,此处是远程访问:http://192.168.1.144:7001/console 点击左侧[ 域结构 ...

  9. WebLogic配置JNDI数据源

    一.什么是jndi数据源 JNDI是Java命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一. 我们平时开发web程序的时候, ...

随机推荐

  1. 树莓派3B+学习笔记:6、安装TeamViewer

    TeamViewer是一个远程控制软件,它可以在任何防火墙和NAT代理的后台实现桌面共享和文件传输,界面简洁,操作简单,不需要专业知识就可轻松上手. TeamViewer电脑端下载网址www.team ...

  2. uva 156 - Ananagrams (反片语)

    csdn:https://blog.csdn.net/su_cicada/article/details/86710107 例题5-4 反片语(Ananagrams,Uva 156) 输入一些单词,找 ...

  3. ubuntu 设置环境变量

    两种方式设置环境变量: 1,添加到环境变量路径$PATH中 # 加到PATH末尾 export PATH=$PATH:/path/to/your/dir # 加到PATH开头 export PATH= ...

  4. 20155233 《Java程序设计》 实验二 Java面向对象程序设计

    20155233 <Java程序设计> 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L ...

  5. How to bind a Command on a ContextMenu within a DataTemplate using MVVM

    Since the Popuup control has it's separate visual tree, you cannot use find ancestor to find the Gri ...

  6. DSP6748学习笔记-190116

    1. PSC是什么?电源和睡眠控制器.一个PSC模块由一个全局PSC和一组本地PSC组成,那么又是什么? PSCModuleControl(SOC_PSC_0_REGS, , PSC_POWERDOM ...

  7. 宿主机 PL/SQL Developer 连接虚拟机 ORACLE 数据库

    1.确保主机与虚拟机间通信正常,双方关闭window防火墙.如能 ping 通,请确保两机IP在一个网段 2.主机安装orcl客户端 3.虚拟机 D:\app\lin\product\11.2.0\d ...

  8. 对posintion属性的简单认识,对于还在纠结的同学们,有一定的帮助

      position的四个属性值: relative ,absolute ,fixed,static 下面分别讲述这四个属性,以简单代码表示 <div id="parent" ...

  9. Vue 数组封装和组件data定义为函数一些猜测

     数组封装 var vm={ list:[0,1] } var push=vm.list.push;//把数组原来的方法存起来 vm.list.push=function(arg){//重新定义数组的 ...

  10. 在eclipse中通过git添加Maven 多重项目时会遇到的问题

    最近,项目换到了使用git作版本控制.于是就开始了,拉代码,测试的时候了. 再过程中遇到两个问题: 1.下载下来的不是项目,只是文档,转换为Maven项目之后 pom.xml报错(org.codeha ...