【发布时间】:2014-05-09 11:03:12
【问题描述】:
我正在尝试创建一个程序来读取数据库并输出它。我已按照http://www.codeproject.com/Articles/35018/Access-MS-Access-Databases-from-Java 的教程进行操作。但是当我运行我的程序时,什么也没有发生。甚至没有错误...
我可能错过了一些东西,但我不知道它会是什么。这是我的代码:
import java.sql.*;
public class ReadDB {
public static void ReadDB() {
try{
//Source: http://www.codeproject.com/Articles/35018/Access-MS-Access-Databases-from-Java
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=ratingdb.accdb;";
Connection conn = DriverManager.getConnection(database, "", "");
Statement s = conn.createStatement();
//Read Table
String selTable = "SELECT * FROM RATINGS";
s.execute(selTable);
ResultSet rs = s.getResultSet();
while((rs!=null) && (rs.next()))
{
System.out.println(rs.getString(1) + " : " + rs.getString(2));
}
s.close();
conn.close();
} catch(Exception e){
System.out.println ("Unable to connect to the database");
System.out.println ("Exception: " + e.getMessage());
}
}
}
在黑豹的评论之后,我得到了这个错误:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x13f4 Thread 0x1204 DBC 0x42170d4
编辑:出现新错误:Exception: [Microsoft][ODBC Microsoft Access Driver] Not a valid file name.这是否意味着我使用的驱动程序不存在?
【问题讨论】:
-
不要吞下异常,记录它们,打印堆栈跟踪,否则让它知道发生了异常或正确处理异常。不要只是忽略它们!
-
如果您使用的是 Java 8:Java 8 不再包含
JdbcOdbcDriver -
也可能是你的DSN有问题...
标签: java ms-access jdbc odbc jdbc-odbc