我有一个普遍的问题:连接池是否可以在缓存中保留一些“古老”的连接并在调用另一个连接时为其提供服务?我知道它以某种方式确实如此,但是它是否使用已经通过某个数据源创建的连接对象,而我明确地将对该数据源的查找更改为新的 JNDI 地址,并通过这个新查找创建了一个新连接(我希望使用它,那是) ?
具体来说,这是我的步骤:
我在我的 GlassFish 服务器中创建了一个连接,在 JNDI 中给它一个名称,在我的代码中使用它,如下所示:
InitialContext ctx = new InitialContext();
//The JDBC Data source that we just created
DataSource ds = (DataSource) ctx.lookup("postgresJNDI");
Connection connection = ds.getConnection();
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("SELECT util_firm, util_name, previlege FROM utilisateur WHERE password = '" + password + "' AND pseudo = '" + pseudo + "' ") ;
问题是一旦发送请求,我会收到一条警报,指出:
serverError: class javax.faces.el.EvaluationException the name of column utilfirm was not found in this ResultSet.
utilfirm 甚至不在我的请求中,也没有在我的数据库中(但在我已删除的一个古老的数据库上,一个通过其他 JNDI 地址访问的数据库......)。
我可能会补充一点,我已经关闭了我使用的每个连接。
这是正常的吗?或者它在我的配置中?
提前致谢。