函数内部的Java数据源查找

时间:2012-03-08 22:43:17

标签: java datasource

所以我有一个在多个环境中运行的webapp。我有一些代码可以从context.xml中查找数据库连接信息,连接,对表值函数运行查询以返回给定键的属性字符串,这是在servlet文件的代码中先前分配的字符串。 / p>

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

//try to get db connection
Connection conn = ds.getConnection();
//try to query the database for properties
String q = "SELECT property_string FROM system.list_all WHERE key = ?";
PreparedStatement stmt = conn.prepareStatement(q);
stmt.setString(1, key);
ResultSet rs = stmt.executeQuery();
rs.next();
String properties = rs.getString("property_string");
conn.close();

这很好用。继续开发应用程序,我确定我需要在其他地方执行相同的查询,因此我添加了属性的返回,并使其成为函数函数的.java文件中名为getProperties的函数。测试它仍然有效,它做了,并继续写第二个servlet并让它调用该函数。

只有第二次通话失败。它坚持在ResultSet中没有结果,即使我传入完全相同的String键。所以现在我有两个servlet,每个servlet声明一个实用程序类的实例,并使用相同的输入调用相同的函数,一个调用成功并返回属性,另一个调用失败,没有结果。

我是否遗漏了Context或DataSource的内容?为什么一个人打电话而不打另一个?

0 个答案:

没有答案