4

我正在开发通过 REST 服务获取和发布数据到数据库的 Android 应用程序。我已经用 Java 中的 Jersey 和 Tomcat 配置了 REST 服务。

我在 REST 服务启动时创建了单个数据库连接。现在所有的 android 客户端都使用单个数据库连接。现在我只想知道在我的场景中使用单个数据库连接是一种好习惯..单个数据库连接可以容纳多个并发请求??

请建议....

更新 当我测试以下场景时,它给出了不同的结果..我刚刚使用带有 Get 注释的 Jersey 配置了简单的 REST 服务器,在这个注释中我编写了代码来使用数据库连接获取 id 为 300 的员工的姓名在 REST 启动时建立..所以当我 http://192.168.15.9:8080/Rest/rest/person/sample在我的网络浏览器上写字时,我得到了员工姓名......然后我创建了批处理文件以在 100 个选项卡中打开 url,我执行了批处理文件。同时,我从我的虚拟机打开 url 并立即获得员工姓名。员工姓名也在 20 秒后显示在 100 个选项卡中。如果单个数据库连接不能用于并发用户,那么为什么我会给出响应迅速??谁能解释一下??

4

1 回答 1

5

不,不应将单个数据库连接用于并发请求。您应该创建一个连接池(基本上是一组可重用的连接),根据需要从池中获取一个连接,然后将其释放到池中。

不要自己做!

由于您有 Tomcat,您可以配置一个JDBC 数据源,然后使用 JNDI 获取对该数据源的引用。数据源将为您提供连接,而无需您自己创建连接。Tomcat 将在后台汇集(激活、维护和处理)连接。
或者,您可以使用自定义连接池,如c3p0,但我强烈建议您使用服务器提供的设施。

如果出于任何原因,您必须在几分钟内部署您的产品(因此您没有时间设置数据源),那么您最好为每个请求打开和关闭连接——这很浪费——而不是共享一个跨所有请求的单一连接。

于 2013-02-04T08:07:41.000 回答