用于REST服务的单个MySql数据库连接

时间:2013-02-04 08:05:32

标签: java rest database-connection database-concurrency

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

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

请建议......

更新 当我测试以下场景时,它给出了不同的结果..我只使用带有tom的tomcat配置了简单的REST服务器,只有Get注释,在这个注释中我编写代码以使用已建立的数据库连接获取id为300的员工的名称当REST启动时...当我在我的网络浏览器上写http://192.168.15.9:8080/Rest/rest/person/sample时,我得到了员工姓名......然后我创建了批处理文件以打开100个标签中的网址,我执行了批处理文件。同时我从我的虚拟机中打开网址,并且没有延迟地获得了员工姓名。员工姓名在20秒后显示在100个选项卡中。如果单个数据库连接不能用于并发用户那么为什么我给出响应很快?任何人都可以解释一下吗?

1 个答案:

答案 0 :(得分:4)

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

不要自己动手!

由于您拥有Tomcat,因此可以配置JDBC data source,然后使用JNDI获取对此数据源的引用。数据源将为您提供连接,而无需您自己创建连接。 Tomcat将在引擎盖下汇集(激活,维护和处置)连接 或者,您可以使用c3p0之类的自定义连接池,但我强烈建议您使用服务器提供的工具。

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

相关问题