Java:同一个servlet中的多个数据资源

时间:2013-03-28 03:32:01

标签: java servlets

“javax.naming.Context”通常用于Java EE开发中。通过使用context.xml中的给定资源名称调用其查找函数,使用它来建立动态数据库连接非常方便。示例代码如下所示,其中“db_name”是您用于标识数据库资源的名称。

Context ctx = new InitialContext(); 
DataSource ds = ctx.lookup("java:comp/env/jdbc/db_name");

我担心的是,通过使用相同的上下文和使用不同的上下文查找资源,查找资源之间的区别是什么。哪种方法更有意义或更合适?假设所有数据库资源都在同一context.xml文件中定义。例如:

Context ctx = new InitialContext(); 
DataSource ds1 = ctx.lookup("java:comp/env/jdbc/db_name_ds1");
DataSource ds2 = ctx.lookup("java:comp/env/jdbc/db_name_ds2");

Context ctx_ds1 = new InitialContext(); 
Context ctx_ds2 = new InitialContext(); 
DataSource ds1 = ctx_ds1.lookup("java:comp/env/jdbc/db_name_ds1");
DataSource ds2 = ctx_ds2.lookup("java:comp/env/jdbc/db_name_ds2");

感谢您的分享。

1 个答案:

答案 0 :(得分:0)

除了你创建了一个不必要的额外java对象之外没有区别。但是,如果jndi服务器是远程的,你会创建两个不同的网络连接和管理它们的笨蛋 - 绝对不是应该做的。