1 package org.davidmoten.rx.jdbc.pool.internal;
2
3 import java.sql.Connection;
4 import java.sql.Statement;
5
6 import io.reactivex.functions.Predicate;
7
8 public final class HealthCheckPredicate implements Predicate<Connection> {
9
10 private final String sql;
11
12 public HealthCheckPredicate(String sql) {
13 this.sql = sql;
14 }
15
16 @Override
17 public boolean test(Connection c) throws Exception {
18 try (Statement s = c.createStatement()) {
19 s.executeQuery(sql).close();
20 return true;
21 } catch (Throwable t) {
22 return false;
23 }
24 }
25 }