我已经创建了一个服务,该服务执行一些数据库操作。但是该服务长时间处于空闲状态,因为我们不需要定期使用该服务。让我说我周一做了一些操作,之后我想要2天后使用该服务,假设我想在星期三使用该服务。但是因为mysql有一个属性 wait_timeout mysql在 wait_timeout 定义的值之后关闭了我的连接。 是否有任何hibenate配置属性将在wait_timeout结束后自动重新连接到数据库 。 我搜索了几个选项: 1]在hibernate配置或数据库url中添加autoReconnect true(我已尝试但在wait_timeout之后无法重新连接数据库) 2]使用c3p0连接器
请告诉我在wait_timeout之后重新连接数据库的方法。 我没有使用c3p0连接器,但我想知道使用c3p0是否合适,或者它是最好的解决方案
请让我知道任何其他选项,以便重新连接数据库。
答案 0 :(得分:2)
大多数连接器提供类似ValidationQuery的东西,以防止丢失数据库连接。对于mysql,ValidationQuery将是“SELECT 1”。
检查this page以获取一些示例(例如,使用c3po,jdbc或直接在数据源上)。我通常将ValidationQuery配置为DatasourceProvider的一部分。