我可以在jsp / servlet或控制台应用程序中打开多少个数据库连接?

时间:2013-10-09 01:00:59

标签: java mysql jsp servlets jdbc

我正在为SMS Gateway开发软件: - 许多选择,插入,更新和删除语句,如每天超过一百万次点击数据库。 - 我在管理数据库连接等资源时遇到一些困难,所以我不知道在哪里关闭连接以最小化创建的连接数。 - 我使用Driver Manager。 - 当我保持连接未闭合时,我在tomcat中出现内存泄漏。 - 在控制台应用程序中,有使用DAO的线程和静态连接,所以我不关闭它。

1)最好不要在查询完成后关闭数据库连接,并将其保持打开状态?

2)我运行servlet以在http连接上接收SMS并将它们插入到DB中,我希望这个servlet上有数千个http连接(可能每分钟),我应该为每个servlet请求关闭并创建数据库连接?

3)在这种情况下使用数据库连接的最佳做法是什么?

1 个答案:

答案 0 :(得分:4)

  

最好不要在查询完成后关闭数据库连接,并将其保持打开状态?

最好使用连接池,在需要时从中获取连接,然后关闭它以尽快将其释放回池中。

  

我有使用静态连接的线程,所以如果我关闭连接,其他线程有异常吗?

当然。这是最糟糕的做法。不要这样做。见上文。

  

我运行servlet以在http连接上接收SMS并将它们插入到DB中,我希望这个servlet上有数千个http连接(可能每分钟),我是否应该为每个servlet请求关闭并创建数据库连接? / p>

是的,但是通过连接池,请参见上文。

  

在这种情况下使用数据库连接的最佳做法是什么?

见上文。

至于标题中的问题,它完全取决于数据库配置。