他使用jdbc将简单的Java应用程序连接到SQL服务器。 它工作得很好。 我想在应用程序中添加一个额外内容,我想通过更改标签的颜色来通知用户数据库是否可以访问。 现在我正在使用这个功能:
private static Connection getDBConnection() {
Connection dbConnection = null;
try {
Class.forName(DB_DRIVER);
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
dbConnection = DriverManager.getConnection(DB_CONNECTION, DB_USER,
DB_PASSWORD);
System.out.println("Connection Good");
return dbConnection;
} catch (SQLException e) {
System.out.println(e.getMessage());
System.out.println("Connection BAD");
}
return dbConnection;
}
我不确定这是否是最佳方式。 我必须验证连接是否成功并立即关闭连接。 如果我有一个异常验证连接我们关闭连接我的线程死了......
是否有最好的方法来验证数据库是否可以访问? 有什么建议 ?谢谢
答案 0 :(得分:2)
我会添加一个虚拟查询来完全确定。这可能不是第一次连接似乎是服务器无法访问:
try {
dbConnection = DriverManager.getConnection(DB_CONNECTION, DB_USER,
DB_PASSWORD);
System.out.println("Connection Good");
try(Statenent st = dbConnection.createStatement();)
{
try(ResultSet res = st.executeQuery("SELECT 1 AS C"))
{
if(res.getInt("C") != 1)
throw new SQLException();
}
}
} catch (SQLException e) {
System.out.println(e.getMessage());
System.out.println("Connection BAD");
}
return dbConnection;
}