如何使用mysql wait_timeout中的hibernate防止mysql连接?

时间:2013-07-16 12:56:11

标签: java hibernate

我已经创建了一个服务,该服务执行一些数据库操作。但是该服务长时间处于空闲状态,因为我们不需要定期使用该服务。让我说我周一做了一些操作,之后我想要2天后使用该服务,假设我想在星期三使用该服务。但是因为mysql有一个属性 wait_timeout mysql在 wait_timeout 定义的值之后关闭了我的连接。 是否有任何hibenate配置属性将在wait_timeout结束后自动重新连接到数据库 。 我搜索了几个选项: 1]在hibernate配置或数据库url中添加autoReconnect true(我已尝试但在wait_timeout之后无法重新连接数据库) 2]使用c3p0连接器

请告诉我在wait_timeout之后重新连接数据库的方法。 我没有使用c3p0连接器,但我想知道使用c3p0是否合适,或者它是最好的解决方案

请让我知道任何其他选项,以便重新连接数据库。

1 个答案:

答案 0 :(得分:2)

大多数连接器提供类似ValidationQuery的东西,以防止丢失数据库连接。对于mysql,ValidationQuery将是“SELECT 1”。

检查this page以获取一些示例(例如,使用c3po,jdbc或直接在数据源上)。我通常将ValidationQuery配置为DatasourceProvider的一部分。