2010-05-11 69 views
5

我正在使用JDBC连接到我的Microsoft Access数据库。 我出现以下情况例外,当我尝试连接到数据库:驱动程序和应用程序之间的架构不匹配?

值java.sql.SQLException:[微软] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序

之间的结构不匹配

我使用的是64位windows7,我使用的是eclipse,它也是一个64位版本我的数据库是一个微软访问数据库,它似乎是一个32位驱动程序导致的问题。

任何有关如何解决这个问题的帮助将不胜感激。

回答

4

退房访问2010 REDIST

Microsoft Access Database Engine 2010 Redistributable

此下载将安装一套组件,可通过非Microsoft Office应用程序可以用来读取和写入数据到Office 2010的系统文件,作为Microsoft Access 2010(mdb和accdb)文件和Microsoft Excel 2010(xls,xlsx和xlsb)文件。与文本文件的连接也受支持。 安装了ODBC和OLEDB驱动程序,供应用程序开发人员用于开发与Office文件格式连接的应用程序。

这应该适合您的需求。祝你好运!

+0

感谢您的回应。 我正在使用Microdoft Office 2006做这件事吗? (如果您是使用ODBC连接到Microsoft Office Access数据的应用程序开发人员,请将连接字符串设置为“Driver = {Microsoft Access Driver(* .mdb,* .accdb) }; DBQ = mdb/accdb文件的路径“)我的代码当前以下列方式连接:\t Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“); connection = DriverManager.getConnection(”jdbc:odbc:users“ ); Im不知道在哪里把连接字符串提到的说明吗?再次感谢 – shane87 2010-05-11 17:43:00

+0

更改DriverManager.getConnection的参数为连接字符串,使用下面的示例作为参考,它包括您的连接字符串: http ://www.rgagnon.com/javadetails/java-0107.html 如果这对你有用,一个upvote和接受的答案将是很好的;)如果不给我留言。 – Yoda 2010-05-12 08:13:25

+0

我相当肯定这些驱动程序会向后兼容,所以不应该成为问题。 – Yoda 2010-05-12 08:20:53

0

我没有足够的声望投票Yoda了,但我不得不说,他的解决方案是我遇到的最优雅。你也可以使用32位的JVM,但这很愚蠢。 (如果您在IIS上遇到此问题,则可以将应用程序池设置为32位,这与此类似。)

相关问题