gpt4 book ai didi

java - 何时与Java/Tomcat建立数据库连接

转载 作者:行者123 更新时间:2023-11-28 23:59:47 26 4
gpt4 key购买 nike

总的来说,我对 Java 还很陌生,并且已经开始使用 Tomcat 开发 Web 应用程序。我很快注意到的一件事是我的 Servlet 类被实例化一次,然后在以后的请求中重复使用。我发现这一点是因为我在我的构造函数中创建了数据库连接,但在 Http 方法本身中关闭了它。但是,这是行不通的;第二个请求失败,因为连接已经关闭!

果然,在构造函数中设置时间戳并将其转储到 Http 方法中,在未来的请求中显示与第一个请求中相同的时间戳。

所以现在我想知道我是否应该在构造函数中建立我的数据库连接并允许该连接为 future 的请求持续存在,或者我是否应该为每个请求建立一个新连接。

在构造函数中建立连接的明显优点是它可以避免以后对额外连接的需要,但当然明显的缺点是即使可能不需要连接,连接也会保持打开状态。

在这个决定中还有哪些我可能没有考虑的其他因素?执行此操作的“标准”方法是什么?

提前致谢!

最佳答案

为每个请求打开一个连接,但使用 connection pool ,因此关闭连接实际上并没有关闭它,而是将其放回可用的打开连接池中。

请注意,像您一样在构造函数中打开连接的最重要问题不是它一直保持打开状态。主要问题是两个线程,处理两个独立客户端的两个请求,会使用相同的连接,相互混淆:第一个线程中的异常会回滚第一个线程所做的更改。在一个线程中提交将提交在另一个线程中完成的部分更改。这是你必须绝对避免的事情。

关于java - 何时与Java/Tomcat建立数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681848/

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