JNDI的初步理解
Posted coder-who
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JNDI的初步理解相关的知识,希望对你有一定的参考价值。
1.JDNI是什么意思?
答:JNDI是 java naming and directory interface 的缩写,是j2ee开发中的一种重要的规范
2.JNDI有什么用?
答:如果没有JNDI,那使用JAVA连接数据库的时候是这样的(如下),如果数据库名称,用户名,密码改变需要对JAVA源代码进行修改,但是程序员应该不需要关心“具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和口令是什么?”等等这些问题,程序员编写的程序应该没有对 JDBC 驱动程序的引用,没有服务器名称,没有用户名称或口令 —— 甚至没有数据库池或连接管理。而是把这些问题交给J2EE容器来配置和管理,程序员只需要对这些配置和管理进行引用即可。由此产生JNDI ,给我的理解是JNDI是一种思想,类似于编写JAVA时使用的静态变量,所有的地方都使用同一个静态变量,当使用的静态变量需要改变时,只需要改变一个地方即可,其次所有的配置都在配置文件中完成,开发时若需要使用数据库只需要获取一个连接即可。
-
Connection conn=null
-
try {
-
Class.forName("com.mysql.jdbc.Driver", true, Thread.currentThread().getContextClassLoader());
-
conn=DriverManager.getConnection("jdbc:mysql://MyDBServer?user=xxx&password=xxx");
-
......
-
conn.close();
-
} catch(Exception e) {
-
e.printStackTrace();
-
} finally {
-
if(conn!=null) {
-
try {
-
conn.close();
-
} catch(SQLException e) {}
-
}
-
}
以上是关于JNDI的初步理解的主要内容,如果未能解决你的问题,请参考以下文章
深入理解JVM虚拟机7:JNDI,OSGI,Tomcat类加载器实现
理解JNDI中 java comp/env/jdbc/datasource 与 jdbc/datasource 的不同之