我使用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
,但是没有用。
有没有办法知道连接是否仍然存在?
答案 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;
}
}