java – 指定的DSN包含体系结构不匹配错误

我收到了这个错误:

The specified DSN contains an architecture mismatch between the Driver
and Application

尝试使用NetBeans和Java编程语言连接到数据库时

我正在使用Microsoft Access 2010和我的系统在64位Windows 7上运行.

我该如何解决这个问题?感谢大家.

解决方法:

在以下情况下会显示该消息:

>您安装了Access数据库引擎(a.k.a.“ACE”),
>为数据库连接创建ODBC DSN,和
>您的Java代码在JVM(Java虚拟机)中运行,其“bit-ness”与已安装的ACE版本不同.

例如,

>您可以安装32位版本的ACE,并尝试从64位JVM中运行的Java代码进行连接,或者
>您可以安装64位版本的ACE,并尝试从运行在32位JVM中的Java代码进行连接.

如果你真的想使用JDBC-ODBC Bridge,那么解决方案是切换到ACE的“其他”版本(即,从32位切换到64位,反之亦然),或者让你的Java代码运行与安装的ACE版本具有相同“bit-ness”的JVM.

(请注意,如果安装了Office,则“切换到64位ACE”实际上意味着“切换到64位Office”.您无法“混合和匹配”32位和64位Office组件.)

但是,现在已经从Java 8中删除了JDBC-ODBC Bridge,您应该考虑使用UCanAccess JDBC驱动程序.它是一个纯Java实现,不使用Access ODBC来操作数据库,因此它可以在运行Java的所有平台(即不仅仅是Windows)上的32位和64位JVM下运行.有关详细信息,请参阅

Manipulating an Access database from Java without ODBC

上一篇:如何在netbeans中更改不可编辑/生成的代码


下一篇:java – 记录未显示