gpt4 book ai didi

java - 我应该在 servlet 中保持数据库连接打开吗?

转载 作者:行者123 更新时间:2023-12-01 23:17:09 30 4
gpt4 key购买 nike

我正在创建一个简单的博客网站,作为在 Tomcat 上使用 Java servlet 的学习项目。

将有两个页面:

  • 首页是一个用于输入博客主题和文本的表单,使用 JDBC 将它们插入到 MySQL 数据库中。
  • 第二页是从数据库获取数据并显示它的页面。

我想知道我是否应该创建一个单独的类来保持连接打开,而不是分别打开和关闭每个页面中的 JDBC 数据库连接。

但是,我不想实例化它,也不想使其静态。

有办法做到这一点吗?

此外,这是一个好的做法吗?只要服务器正在运行,保持数据库连接打开是否安全?

最佳答案

Think of a connection pool

连接池为您提供了很多优势,但最重要的是它们解决了以下问题

  1. 建立真正的数据库连接的成本很高。连接池总是有一些额外的连接,并为您提供其中之一。
  2. 如果连接失败,连接池知道如何打开新连接
  3. 非常重要:每个线程都有自己的连接。这意味着线程处理在它应该在的地方处理:在数据库级别。数据库非常高效,可以轻松处理并发请求。
  4. 其他东西(例如集中 JDBC 连接字符串的位置等),但有数百万篇关于此的文章、书籍等

The following page on Tomcat's website详细介绍了如何连接Tomcat和mySQL。您不想推出自己的数据源池,已经有太多可用的数据源池已经在生产环境中进行了调试和尝试。

使用池的主要一点是,当您调用 close 时,连接不会终止,而是只是返回到池中。因此,确保在 try/finally block 中关闭资源非常重要。 Look here for a sample .

您处于 servlet 中,因此您应该使用容器提供的连接池。除了如何获取连接之外,您的 JNDI 代码将完全正常。据我所知,所有servlet容器都有连接池。

关于java - 我应该在 servlet 中保持数据库连接打开吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21058511/

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