检查程序是否仍与localhost(在JDBC中)连接?

时间:2018-11-09 16:45:22

标签: java mysql jdbc

我使用JDBC创建了与localhost的连接。在那里很好,但是如果我想知道连接是否仍然存在怎么办?我的代码:

class Connection_maker
{
  private Connection conn;
  private static final String DESTINATION = "jdbc:mysql://localhost/";
  public Connection_maker()
  {
     try
     {
        Class.forName("com.mysql.jdbc.Driver");
        this. conn = java.sql.DriverManager.getConnection(DESTINATION, "root", "");
        System.out.println("connected");
     } 
     catch (Exception e)
     {
        e.printStackTrace();
     }
   }
   public static void main(String[] args)
   {
       new Connection_maker();
   }
}

我试图使用java.util.Timer每1分钟安排一个TimerTask,但是我必须创建另一个连接,我认为这不是有效的方法。我在catch块中尝试了com.mysql.jdbc.exceptions.jdbc4.CommunicationsException,但是没有用。

有没有办法知道连接是否仍然存在?

1 个答案:

答案 0 :(得分:0)

使用该连接执行查询“选择1”。这是非常轻巧的。

bool isAlive(){
   try{
      String query = "SELECT 1";
      Statement st = this.conn.createStatement(ue);
      ResultSet rs = st.executeQuery(query);
      return true;
   }catch(SQLException e){
      // honestly kind of non-specific ??
      return false;
   }
}