【发布时间】:2014-02-20 12:39:30
【问题描述】:
我想在 servlet 之间共享一个数据库连接。
我创建了连接池,并获得了这样的 dataSource 对象
Context envContext = (Context)context.lookup("java:/comp/env");
dataSource = (DataSource)envContext.lookup("jdbc/limedb");
现在,我想在 servlet 之间共享这个 dataSource 对象,以便每个 servlet 都可以做
connection = dataSource.getConnection();
获得自己的连接。
实现这一目标的最佳方法是什么?我想在应用程序启动时创建池并将其存储在某个地方...
【问题讨论】:
-
...如果 servlet 需要共享完全相同的连接,为什么还要使用池?你 - 真的 - 确定这是你想要的吗?这似乎是一个正在形成的并发地狱。
-
那么如何让它们共享同一个连接呢?
-
我认为存在重大误解。池已在应用程序启动期间创建并存储!使用
context.lookup(),您只是获得了对它的引用……更简洁的方法是使用@Resource。
标签: java servlets connection-pooling