zoukankan      html  css  js  c++  java
  • 连接Access 你未曾遇到过的细节错误

        我一个梦想,那就是有朝一日能够用Jdbc 直连上MySQL,SQL Server,Access这些数据库。所谓的DSN-less即通过添加数据源的方式连接数据库我已经成功了。但是目前似乎是用驱动连数据库的居多。数据源的方式不是主流了。所以我要实现我的小小梦想。

        折腾的事情就不说了。毕竟得之不难,失之必易。像我这等jdbc直连一个Access数据库都历经坎坷的人,注定这辈子不轻易忘记连接数据库的方法了。

        现在我把成功链接的代码贴上,相关路径下的mdb自己建好。我在D:\temp\Student.mdb里建了一张表格info,里面有sno,sname两列。输进去四行数据分别是

    001 大熊

    002 静香

    002 阿福

    003 技安

    package database;
    import java.sql.*;
    public class AccessDemo2
    {
        public static void main(String[] args)
        {
            Connection conn;
            Statement stmt;
            ResultSet rs;
            String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d:\\temp\\Student";
            try
            {
                // 加载JdbcOdbcDriver 驱动
                Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver"); 
                
            }
            catch (ClassNotFoundException e)
            {
                System.out.println("Driver Error "+e);
            }
            try
            {
                // 通过数据源连接到数据库
                conn = DriverManager.getConnection(url);
                stmt = conn.createStatement();
                rs = stmt.executeQuery("select * from info");
                while (rs.next())
                {
                    System.out.print(rs.getString(1) + " ");
                    System.out.println(rs.getString(2) + " ");
                    
                }
                
            rs.close();
            stmt.close();
            conn.close();
            }
            catch (SQLException e)
            {
                System.out.println("Connection Error "+e);
            }
        }
    }

      我就是照着打的。很多时候对照着书本上的代码敲进自己的计算机会发现许多奇怪的错误。

      成功连接数据库的结果都是一样的。输出结果也是没有问题的。然而不成功连接却有着各自的不成功。

      我这里的致命错误就是 jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}; 和Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");

    前者我在Driver 和(*.mdb)直接省略了括号。后者是在JdbcOdbcDriver和引号之间加了一个括号。 你可以这么做试试看,然后考考你的同事同学,看看他对着异常能不能很快发现错误。

       这种细节性的问题我一直犯。但是这次犯过一次下次一定会记住了。

       好了Jdbc直连Access是没有问题了。接下来我要成功直连另外两个数据库服务器:MySQL和 SQL Server。 有同学告诉我SQL Sever 2000必须打上sp4补丁。我以前不知道这个情况,我也不知道我的有没有打上sp4补丁了。或者说推荐我不要用13年前的数据库了。有点对不起自己了。那好,我可以试试我另外一个SQL Server 2005。

      

  • 相关阅读:
    快速熟悉项目代码
    Hello World
    【java】随机生成6位的数字
    解决字段名与实体类属性名不相同的冲突
    通过eclipse mybatis generater代码生成插件自动生成代码
    自有账户体系对接百度云推送必须要弄懂的问题
    使用jquery获取url及url参数的方法
    Delphi 不使用自带模板创建服务
    Delphi在Listview中加入Edit控件
    动态加载和动态注册类技术的深入探索
  • 原文地址:https://www.cnblogs.com/ligongzi/p/2494144.html
Copyright © 2011-2022 走看看