gpt4 book ai didi

java - 在 Tomcat 中调用 JNDI 数据源的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:00:25 25 4
gpt4 key购买 nike

我在 Tomcat 服务器上使用 Java Web 应用程序,想知道从 Tomcat 的 JNDI 内部访问数据库连接的“最佳实践”是什么?

目前,这基本上是我每次需要访问数据库时所做的:

Context envContext = null;
DataSource dataSource = null;
try {
envContext = (Context)ctx.lookup("java:/comp/env");
dataSource = (DataSource)envContext.lookup("jdbc/datasource");
return dataSource.getConnection();
} catch (Exception e){
e.printStackTrace();
return null;
}finally {
if(envContext != null){
try{
envContext.close();
} catch (NamingException e){
e.printStackTrace();
}
}
}

但是,这是每次我想访问数据库时从 JNDI 查找连接的正确方法吗?我应该保留对上下文或数据源的引用吗?

最佳答案

new InitialContext() 在每个应用程序容器中都是昂贵的,它应该是一个 static final 并在 static {} block 中创建,有效地使它成为一个 Singleton。您只需创建一次此引用,然后在需要的任何地方重复使用它。

DataSource 也应该是 static。您应该有一个 public static Connection getConnection(); 方法来检索 Connection 对象,代码永远不必直接处理 DataSource。这对于 PooledDataSource 实现尤其有效。

关于java - 在 Tomcat 中调用 JNDI 数据源的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4811004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com