如何使用弹簧数据jpa检查与db的连接是活动还是丢失?
只有这样才能进行查询" SELECT 1"?
答案 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}}