我有一个J2EE应用程序,其注销未正确实现,我的目的是在用户注销后关闭所有数据库资源。不确定 session.invalidate(); 是否有效真的会有帮助,我今天会尝试一下。请建议实现注销的最佳方式是什么,以便用户注销后释放所有有价值的资源。
我的目的是在用户注销后关闭所有数据库资源
这已经是不良做法的迹象。数据库资源应该在尽可能短的范围内获取和关闭,即在同一个方法块内。您可能永远不会将数据库资源(Connection
、
Statement
和/或ResultSet
)作为静态变量或实例变量。这是资源泄漏和更严重的问题的收据。如果初衷是为了提高连接性能,就需要引入连接池。请记住,这不是让你自己
保持联系畅通的借口。只需以同样的方式尽快获取和关闭它们,连接池实现本身就会担心实际关闭连接或将其释放回池。一切都是完全透明的。体面的应用程序服务器附带 JNDI 数据源风格的连接池功能。利用它。完成此操作后,您根本不需要担心任何开放的数据库资源或性能。
使用您的连接和其他数据库类来删除数据库资源。