zoukankan      html  css  js  c++  java
  • java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

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

    首先是配置ODBC数据源,打开控制面板,小图标方式查看,我看到有个

    这个图标是好像是32位ODBC的标志,我点击启动了它,启动的却是64位的ODBC管理工具,

    我在“用户DSN”面板下点击了“添加”按钮,弹出“创建新数据源”窗口,

    我双击“SQL Server”,弹出下面这个窗口

    我在“名称”一栏里填上“hp4”,在“服务器”一栏里填上“(local)”(服务器一栏可以从下拉菜单选择的,下拉列表里为空时可以填“(local)”或计算机名,计算机名可以在计算机属性里看到),然后下一步

    来到下面这个窗口,选择“使用用户输入登录ID……”,登录名填“sa”,密码填写sa账户的密码,下一步

    一直下一步到完成,弹出配置信息,可以测试下数据源

    到这里为止,数据源配置完成了。

    接下来启动Myeclipse,新建web project,给index.jsp添加sql包引用,pageEncoding设置成“utf-8”

    在body里面添加如下代码:

    <%

      try{

      Connection Con;

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

      Con = DriverManager.getConnection("jdbc:odbc:hp4","sa","123456");

      System.out.println("Step1 goes well");

      }

      catch(Exception e){

      System.out.println("Step1 down");

      e.printStackTrace();

      }

    %>

    在MyEclipse内置浏览器中访问上面的页面,控制台输出“Step1 goes well”,表示连接成功。

    JDBC-ODBC桥内置在JDK中,所以不需要另外添加驱动包,上面的代码意思是连接成功就在控制台输出“Step1 goes well”,连接出错就在控制台输出“Step1 down”。

    创建数据源的过程我还存在很多疑问。

    首先是启动ODBC管理器时应该启动32位还是64位?

    在控制面板中点击 “管理工具”,会看到有两个ODBC管理器,

    我在这次演示中启动的是64位,

    然后就是应该在“用户DSN”面板下还是在“系统DSN”面板下新建数据源?

    我之前在“系统DSN”面板下创建了两个数据源,连接时都报错了,错误信息是

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

    我百度这个错误,网上说是因为32位和64位的问题,64位系统应该建立64位DSN,但我在系统DSN下建立的DSN确实是64位的,如下图,连接下面两个DSN都会报上面那个错误。

    我在用户DSN面板下创建的DSN貌似是32位和64位都支持的,如下图的hp2、hp3、hp4

    暂时没有其它问题了。上面两个问题懒得探讨了,很简单的控制变量法就能检查出来。

    ——弹指间,青丝白雪,佳人谁负?——
  • 相关阅读:
    SQLServer 系统表简介
    C# abstract 和 virtual 关键字
    Windows脚本 %~dp0的含义
    Windows脚本 批处理中能够使用的系统变量
    Windows脚本 Shift 命令
    Windows脚本 关于本机ARP静态绑定批处理文件讲解[绑定ipmac脚本详解]
    开学测试
    仓库管理系统
    读《人月神话》
    个人作业2
  • 原文地址:https://www.cnblogs.com/dige1993/p/4603387.html
Copyright © 2011-2022 走看看