如何使用jdbc连接检查java中的连接状态?
如何处理Msaccess jdbc连接中的sql异常?我正在使用java中的jdbc连接从msaccess检索数据。如果连接失败,我需要显示自定义消息,而不是引发异常如何使用jdbc连接检查java中的连接状态?,java,ms-access,Java,Ms Access,如何处理Msaccess jdbc连接中的sql异常?我正在使用java中的jdbc连接从msaccess检索数据。如果连接失败,我需要显示自定义消息,而不是引发异常 public static Connection getConnection() { Connection connection = null; try { String url = "jdbc:odbc:db1"; String username = "";
public static Connection getConnection() {
Connection connection = null;
try
{
String url = "jdbc:odbc:db1";
String username = "";
String password = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection= DriverManager.getConnection(url, username, password);
}
catch(Exception e)
{
System.out.println("Report");
}
return connection;
}
但它不处理自定义消息。它的抛出错误:
java.sql.SQLException:[Microsoft][ODBC Excel驱动程序]Microsoft Jet数据库引擎找不到对象您无法避免异常。您可以使用
try{
// do Something
} catch(SqlException e){
// catch exception
} finally {
// do something to get recover
}
无法避免引发SQLException。JDBCAPI不提供测试连接活跃度的方法 为了测试JDBC连接是否(仍然)有效,您需要执行一个简单的查询。用于执行此操作的“虚拟查询”习惯用法因数据库而异,但对任何表的任何查询都已足够。如果连接未激活,则会出现异常。。。这是你需要处理的
但是在您测试连接,然后执行真正的查询(或其他任何操作)之间,数据库连接可能会终止。所以(IMO)您最好只编写代码,这样它就可以在真正的查询中处理SQLException。。。不用费心去探究。这也提供了更好的性能,因为反复测试JDBC连接是否处于活动状态会给应用程序增加无用的负载。。。和数据库。调用getConnection的位置,通过处理异常提供自定义消息:
Connection con = null;
try {
con = DatabaseUtil.getConnection();
...
...
}catch(Exception e) {
//show message, dialog box, whatever
} finally {
if(con != null) {
try{
con.close();
}catch(SQLException sqe){
//yet another message, unable to close connection cleanly.
}
}
}
另外,声明“异常”是个坏主意,您应该始终尝试从您的方法中抛出最相关的异常。SQLException在DatabaseUtil.getConnection中更有意义
p.p.S.品名(司机);每次JVM调用只需要一次(用于JDBC驱动程序注册)。因此,注册JDBC驱动程序的合适位置是在静态初始值设定项中(第一次加载类时会调用一次)。您是否尝试捕获异常?