2010-02-03 34 views
1

使用ODBC连接到mysql数据库时,连接在8小时后(默认)超时。用于准备语句的数据库连接

为了使我的应用程序具有弹性,它必须重新创建此连接以发出预准备语句查询。

是否可以为预处理语句发出新的数据库连接?

这样做有意义吗?

看起来好像准备好的语句是在连接的基础上创建的。

目前的解决方案是:

  1. 重新连接
  2. 重新准备查询
  3. 执行查询

回答

0

没有,准备语句被绑定到一个连接,而不是其他的方式周围。您目前处理超时连接的方式没问题。

+0

您是否可以通过一些相关文档来确认这一点?我试图搜索,但找不到任何有用的东西。我想了解更多关于准备好的语句和数据库连接之间关系的信息。谢谢 – user128026 2010-02-04 03:05:28

0

我认为,将连接打开到SQL数据库8小时是不好的做法。你有一些长期运行的操作,需要这么多时间吗?然后考虑在数据库中有一个存储过程,它应该将结果转储到某个临时表中,您可以稍后再检查。

但通常情况下,应用程序应尽快释放连接(以及所有准备好的语句)。为了加速连接开放,你可以使用连接池(它也应该存在于ODBC中)。连接池将在返回到应用程序之前检查连接是否“活动”,例如,请参阅validationQuery参数Java DBCP

+0

是的,这是一个漫长的过程。当数据流量变得非常低时,mysql连接很少使用。连接池是一个好主意,感谢链接 – user128026 2010-02-07 23:51:45