问题

我正在尝试使用Java连接到MS Access创建的数据库,但我似乎无法管理。我使用ODBC,我得到这个例外:

java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

我的Java:

package javaapplication2;

import java.sql.Statement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

/**

*

* @author Owner

*/

public class JavaApplication2 {

/**

* @param args the command line arguments

*

*/

public static void main(String[] args) {

// TODO code application logic here

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String sourceURL = new String("jdbc:odbc:myDatabase");

System.out.println(sourceURL);

Connection dbConnection = DriverManager.getConnection(sourceURL,"admin","");

Statement myStmt = dbConnection.createStatement();

String query = "INSERT INTO People(ID, Name, Surname, Age, Contact, Location, Course) VALUES"

+ " (1007, 'Elroy', 'Smith', '33', 21366688, 'Somewhere', 'somecourse')";

myStmt.executeUpdate(query);

ResultSet results = myStmt.executeQuery("SELECT * FROM People");

while(results.next())

{

System.out.print(results.getString(1));

System.out.print(results.getString(2));

System.out.print(results.getString(3));

System.out.println(results.getString(4));

}

results.close();

}

catch(ClassNotFoundException cnfe)

{

System.out.println(cnfe);

}

catch(SQLException sqle)

{

System.out.println(sqle);

}

}

}

#1 热门回答(116 赞)

这些都不是为我做的。我确实在MSDN上找到了答案。但有一些暗示。错误中的体系结构是指32比64位。我的解决方案是找出我的应用程序在(Access)下运行的哪个2010是32b。我通过查看任务管理器的"进程"选项卡找到了这一点,其中所有32b进程都有* 32名称的结尾。如前所述,控制面板将从此处启动64位版本的ODBC

c:\windows\system32\odbcad32.exe

和32位版本在这里:

c:\windows\sysWOW64\odbcad32.exe(最容易复制并粘贴到运行对话框中)

因此,我在每个指向同一事物的相应ODBC控制面板(AKA管理员)中设置名称以32和64结尾的DSN。然后,我根据使用它的应用程序是32b还是64b来挑选/选择正确的。

#2 热门回答(23 赞)

当Access的位版本(32与64)不匹配时,尝试从MS-Access连接到MySQL数据库时会出现同样的错误

你正在使用的ODBC驱动程序的位版本

用于设置它的ODBC管理器的位版本。

对于那些试图在64位Windows系统上将MS-Access连接到MySQL的人,我经历了纯粹的折磨,试图让它与MS-Access 2010和MS-Access 2013一起工作。最后让它工作,这里是我一路上学到的经验教训:

我买了一台新的Windows 7,64位笔记本电脑,我有一个依赖于使用MySQL表的MS-Access的应用程序。

我使用All In One软件包安装安装了最新版本的MySQL 5.6。这允许你一次安装数据库和ODBC驱动程序。这很好,但它安装的ODBC驱动程序似乎是64位,因此它不适用于32位MS-Access。它似乎也有点小马车 - 不确定那个。在ODBC管理器中添加新DSN时,此驱动程序显示为"Microsoft ODBC For Oracle"。我无法让这个工作。我必须安装32位,如下所述。安装后MySQL运行正常。我以通常的方式恢复了我的应用程序MySQL数据库。现在我想使用MS-Access连接到它。

我以前安装了Office 2013,我认为是64位。但在检查版本(文件,帐户,关于访问)时,我发现它是32位。 Access 2010和2013都是最常见的32位版本。

我的机器是64位机器。因此,默认情况下,当你为MS-Access设置DSN,并通过控制面板,管理选项以通常的方式进入ODBC管理器时,你将获得64位ODBC管理器。你无从知晓!你无法分辨。这是一个巨大的陷阱!!无法从那里设置DSN并使其成功连接到MS Access 32位。你会得到可怕的错误:"指定的dsn包含架构不匹配......"

你必须从MySQL下载并安装32位ODBC驱动程序。我使用的是版本3.5.1 http://dev.mysql.com/downloads/connector/odbc/3.51.html

你必须告诉控制面板中的ODBC管理器进行加权,而必须使用在Start,Command提示符下执行此命令显式调用32位ODBC管理器:c:\ windows \ sysWOW64 \ odbcad32.exe我创建了一个快捷方式这在我的桌面上。在此处,使用此经理构建你的DSN。重要的一点:将它们构建为系统DSNS,而非用户DSNS!这让我绊了一会儿。顺便说一句,64位版本的ODBC管理器也可以显式运行为:c:\ windows \ system32 \ odbcad32.exe

从MySql安装32位ODBC驱动程序后,在ODBC管理器中单击"添加"时,将看到列出的2个驱动程序。选择"MySQL ODBC 5.2 ANSI驱动程序"。我没有尝试UNICODE驱动程序。

这样做。一旦在32位ODBC管理器中定义了DSN,就可以通过Access中的常规方式连接到MySQL - 外部数据,ODBC数据库,链接到数据库,选择机器数据源,以及为MySQL创建的DSN数据库将在那里。

#3 热门回答(8 赞)

架构不匹配。你的JDBC驱动程序和JDK应该具有相同的体系结构。如果你使用32位驱动程序和你的JDK是64位,你会得到这个错误。

修复:取决于你的架构。

如果Java是64位,则需要64位驱动程序。

mysql 在指定的dsn中_指定的DSN包含驱动程序和应用程序之间的体系结构不匹配。 JAVA...相关推荐

  1. mysql 体系结构不匹配_指定的DSN包含驱动程序和应用程序之间的体系结构不匹配...

    当Access的位版本(32 vs 64)不匹配时,尝试从MS-Access连接到MySQL数据库时,会出现完全相同的错误 您正在使用的ODBC驱动程序的位版本 用于设置它的ODBC管理器的位版本. ...

  2. mysql 在指定的dsn中_access 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配...

    [win7 64位 通过ODBC/JDBC连接程序和数据库时,异常报错"在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配"时,是因为你使用64位的管理工具"数 ...

  3. win7 64位数据库连接问题:在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

    通过ODBC/JDBC连接程序和数据库时,异常报错"在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配"的解决办法 在指定的 DSN 中,驱动程序和应用程序之间的体系结构 ...

  4. [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

    网页显示的出错内容: Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC 驱动程序管理器] 在指定的 D ...

  5. ODBC 驱动程序管理器 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 解决方案

    ODBC 驱动程序管理器 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 解决方案 参考文章: (1)ODBC 驱动程序管理器 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹 ...

  6. win7 64位数据库连接问题:在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配...

    通过ODBC/JDBC连接程序和数据库时,异常报错"在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配"的解决办法 本机:64位win7,64位JDK,做Web实验用32 ...

  7. odbc java 驱动程序_java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配...

    今天把sql server 2008 r2装了起来,64位的,然后就迫不及待地体验连接数据库的操作,编程语言是java.我一开始学了一种非常老的连接方式,使用JDBC-ODBC桥.初次使用不太熟练,所 ...

  8. Infa连接数据源“指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配”

    win7 64位+Infa客户端64位+oracle client 32位(Windows上安装两个Oracle客户端,时间长了别手贱删除一个,解决问题又花费了半天时间) 之前配置了Oracle cl ...

  9. 64位操作系统,mysql ODBC 驱动程序和应用程序之间的体系结构不匹配

    1)环境 Windows Server 2008R2 64bit+Mysql 5.5.16 for 32 bit+Mysql odbc connector 64 bit 2)报错信息 在指定的 DSN ...

最新文章

  1. 计算机网络邮件客户编程,北京理工大学-计算机网络实践-实验4POP3邮件客户程序.docx...
  2. RHCE 学习笔记(20) ACL
  3. Linux的默认给home分配多少,Linux 分配/home的磁盘空间给根目录
  4. ASP.NET MVC3 部署的前期工作
  5. ssl2345-繁忙的都市
  6. PostgreSQL 8.4.3 Final / 9.0 Alpha 4
  7. 解析弱电安防监控管理系统的安装技术重点
  8. BaiduMapsApiDemo报错:请在 DemoApplication.java文件输入正确的授权Key
  9. linux档案内容怎么写,Linux cat输出档案命令详解
  10. A Easy Game(FZU 2146)
  11. java 调用net remoting_获取 org.springframework.remoting.RemoteAccessException: 在进行调用时无法访问远程服务?...
  12. EditPlus3.3 集成 SVN
  13. 透明FLASH的插入方法
  14. 【比较】2022 程式语言排名与分析,该学习哪一种程式语言?
  15. 如何编写一份合格的架构设计文档
  16. Global Mapper 将散点数据转为grd或者其他各种格式数据
  17. 爬取免费代理,拥有自己的代理池
  18. mysql数据库 数据查询闯关(头哥)
  19. Android 使用ViewPager2+ExoPlayer+VideoCache 实现仿抖音视频翻页播放
  20. 七夕,用python表白的各种姿势

热门文章

  1. Impala Shell 和 Impala SQL
  2. C#区域性语言(CultureInfo)与资源本地化(WINFORM,多线程,原理可适用于网络开发)
  3. c语言:13、指针与内存
  4. Photoshop插件-锐化-多重调整锐化 (Web)-脚本开发-PS插件
  5. 51单片机驱动无源蜂鸣器
  6. 牛客15029数泡泡
  7. 影响百度竞价点击量的7大原因
  8. 计算机组成原理实验一:运算器组成的实验
  9. 判断苹果黑条_【苹果iPhoneXR评测】黑边厚也是苹果的“无奈之举”_苹果 iPhone XR_手机评测-中关村在线...
  10. Java学习笔记之基础语法(一)