如何在Windows 7上使用Java + ODBC连接到MS Access数据库

问题描述:

我经常google了这个问题,答案不一致,没有任何帮助。所以我想我可以在这里得到更多的帮助。 我需要在Java中为我的下一个类使用ODBC从MS Access数据库(mdb)获取数据编写一个小应用程序。我的操作系统是Windows 7旗舰版64位。我知道SysWOW64文件夹中有一个odbcad32。 我设法在那里建立DSN。但我无法连接。该应用程序抛出一个SQL异常。尝试了两种替代品的DriverManager.getConnection()如何在Windows 7上使用Java + ODBC连接到MS Access数据库

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBH=E:/DB.mdb 

jdbc:odbc:DSN_NAME 

的驱动程序是:

sun.jdbc.odbc.JdbcOdbcDriver 

[编辑]

连接码是基本的加盟如下:

try { 
     Class.forName(driver); 
     db = DriverManager.getConnection(url); 
    } 
    catch(SQLException e) { 
     System.out.println("SQL error!"); 
    } 
    catch(ClassNotFoundException e) { 
     System.out.println("Class not found!"); 
    } 

[/编辑]

并不起作用。我不知道如何解决这个问题,因为我不知道问题出在哪里!如果是ODBC驱动程序或Java或其他。

使用虚拟WinXP来完成这项工作太麻烦了。这不能永远持续下去。

[EDIT2]

只是可以肯定:它在WinXP工作,因为implicited。 :}

[/ EDIT2]

我将不胜感激了很多的帮助,我可以来到这里。 :DDDDD

+1

不知道你期望什么样的帮助。您发布的伪代码的随机位看起来很合理,但您尚未发布显示实际演示代码的SSCCE(http://sscce.org)。您尚未说明SQLException是什么。所以我们没有什么可以继续。 – camickr 2010-11-20 23:51:23

+0

已编辑。我希望现在就够了。 :D – 2010-11-21 01:44:45

+0

在我看来,如果你已经Google并发现不满意的答案,那么包含一些答案并解释他们为什么没有解决你的问题是有意义的。 – 2010-11-24 20:12:34

因此,您既然已经安装了ODBC,则可能还需要确保使用的是相同的64位odbc驱动程序(如果您在%WINDIR%\ System32 \ odbcad32.exe下创建了odbc连接)。我知道有一个事实,即没有64位驱动程序的访问2007年,所以在我的情况下,我不得不创建一个32位odbc连接(%WINDIR%\ SysWOW64 \ odbcad32.exe),降级我的Java版本到32位,并使用32位驱动程序使其工作。

希望这会有所帮助!

+0

这就是我的想法,但我很难找到正确的版本。我再试一次,似乎我很幸运。它正在工作:D非常感谢。 – 2010-11-21 17:47:56