gpt4 book ai didi

java - Tomcat + ActiveJDBC : open/close connection using servlet filter?

转载 作者:行者123 更新时间:2023-11-28 22:51:32 25 4
gpt4 key购买 nike

我的 Web 应用程序使用 ActiveJDBC。这个 ORM 框架需要为每个新线程打开新的数据库连接(当然,当线程完成时关闭它)。我想知道实现此目的的最佳方法是否是使用 Web 过滤器。

如果是这种情况,我应该在哪里调用 Base.open()?选项是 init()doFilter()。另外,如果我计划在 destroy() 中调用 Base.close(),我需要知道确实总是调用 destroy()线程终止时,是正常还是异常。

编辑:在阅读了有关 servlet 过滤器的内容后,我现在认为正确的处理方式是在 doFilter() 中打开和关闭连接:

public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain) throws IOException, ServletException { 
Base.open();
chain.doFilter(request,wrapper);
Base.close();
}

这是正确的方法吗?

最佳答案

是的,这是 ActiveJDBC 在 Web 环境中打开和关闭连接的正确方法。

除此之外,这是管理异常的正确位置。例如,您可能希望像这样管理事务:

try{
Base.openTransaction();
chain.doFilter(request,wrapper);
Base.commitTransaction();
}catch(Exception e){
// log exception
Base.rollbackTransaction();
}finally{
Base.close();
}

最终与其处理Servlet,不如给ActiveWeb旋转?在这里查看更多信息:http://javalite.io/database_configuration

关于java - Tomcat + ActiveJDBC : open/close connection using servlet filter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com