检查数据库连接处于活动状

时间:2018-01-09 21:33:09

标签: java mysql spring-data-jpa

如何使用弹簧数据jpa检查与db的连接是活动还是丢失?

只有这样才能进行查询" SELECT 1"?

2 个答案:

答案 0 :(得分:0)

无。只需执行您的查询。如果连接已经死亡,您的JDBC驱动程序将重新连接(如果它支持它,并且您在连接字符串中启用它 - 大多数不支持它),否则您将获得异常。

如果您检查连接是否已启动,则在实际执行查询之前可能会出现问题,因此您无需通过检查获得任何内容。

也就是说,许多连接池通过在递送连接之前执行类似SELECT 1的操作来验证连接。但这仅仅是执行查询,因此您也可以执行业务查询。

我们最好的机会是对一个表执行简单的查询,例如:

select 1 from SOME_TABLE;

https://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html#isValid%28int%29

答案 1 :(得分:0)

如果你可以使用Spring Boot。 Spring Boot Actuator对您有用。 执行器将自动配置,激活后, 您可以了解数据库状态以请求"健康"

http://[CONTEXT_ROOT]/health

它将返回,数据库状态如下

{"status":"UP","db":{"status":"UP","database":"PostgreSQL","hello":1}}