Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC和JNDI代码解释javeee_Java_Jdbc_Jndi - Fatal编程技术网

Java JDBC和JNDI代码解释javeee

Java JDBC和JNDI代码解释javeee,java,jdbc,jndi,Java,Jdbc,Jndi,我是JavaEE世界的新手,在我的应用程序中,我想连接到数据库。我能够用下面的代码完成这项任务,但是有人能给我解释一下吗?每条线都做什么 代码: try { InitialContext initContext = new InitialContext(); Context env = (Context) initContext.lookup("java:comp/env"); ds = (DataSource) env.lookup("jdbc/test2"); } c

我是JavaEE世界的新手,在我的应用程序中,我想连接到数据库。我能够用下面的代码完成这项任务,但是有人能给我解释一下吗?每条线都做什么

代码:

try {
    InitialContext initContext = new InitialContext();
    Context env = (Context) initContext.lookup("java:comp/env");
    ds = (DataSource) env.lookup("jdbc/test2");
} catch (NamingException e) {
    throw new ServletException();
}
我还发现,我可以使用tomcat在我的JSP中使用下面的注释,从而实现与上面相同的结果。我可以在任何web服务器(例如GlassFish或Jboos)上使用此注释吗

加油站代码:

@Resource(name = "jdbc/test2")
private DataSource ds;
Java命名和目录接口™ (JNDI)是一个应用程序 提供命名和目录的编程接口(API) 使用Java编写的应用程序的功能™ 程序设计 语言

上下文
对象提供了将名称绑定到对象、从对象解除名称绑定、重命名对象和列出绑定的方法

JDNI执行与上下文相关的所有命名操作。因此,JDNI定义了一个
InitialContext
,它为命名和目录操作提供了起点。一旦有了初始上下文,就可以使用它查找其他上下文和对象

JDNI包中的许多方法在需要指示无法执行请求的操作时抛出
NamingException
。JDNI有一个丰富的异常层次结构,源于
NamingException
类。异常的类名是不言自明的,并已列出

您可以使用
@Resource
注释来注入资源。您可以找到有关正确使用的更多信息

资料来源: