2013-02-04 31 views
3

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

当REST服务启动时,我创建了单个数据库连接。现在所有的android客户端都使用单个数据库连接。现在我只想知道在我的场景中使用单一数据库连接是否好的做法。单个数据库连接可以招待多个并发请求?

请建议....

更新 当我测试下面的场景,它给不同results..i仅仅只配置了使用与泽西获取注释的Tomcat简单的REST服务器,这个注释我写的内部使用数据库连接来获取ID为300的员工的名称的代码,这是在REST开始时建立的。因此,当我在我的网络浏览器上编写http://192.168.15.9:8080/Rest/rest/person/sample时,我得到了员工姓名...然后我创建了批处理文件以打开url在100个选项卡中,我执行了批处理文件。同时,我打开我的虚拟机的网址,并得到了员工的名字,没有任何延迟..员工姓名在20秒后显示在100个标签中..如果单个数据库连接不能用于并发用户,那么为什么我给出了回应迅速??任何人都可以解释吗?

回答

4

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

不要自己动手!

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

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

+0

请参阅我的文章更新.... – Zain

+0

尝试通过同一连接执行并发事务! :) – gd1

+1

是的,我同意你的意见。因此,我接受你的答案,谢谢你的精彩支持..... – Zain

相关问题