View Javadoc
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      }