JDK1.8版本Elipse建立JDBC-ODBC连接Access数据库的问题及解决——亲测有效,良心教程

时间:2024-03-20 11:47:51

问题:

由书中所述并试验后发现,编译出现异常。

原因:

JDK1.8是无法直接连接微软的Access数据库的,在网上查找了一下原因,大概意思就是Java从JDK1.6之后就移除了Access桥接驱动,因此不再支持jdbc:odbc桥接方式,rt.jar下根本没这个类,所以报异常,需要下载Access驱动jar包(如Access_JDBC30.jar)。

尝试过程:

下载JDK1.764位版本后,依然异常,百度后发现似乎需要32位版本才可与ODBC32位的匹配,我的ACCESS2010下的版本是32位的,随后我下载了JDK1.732位的版本,发现在64位机子上安装不上,百度安装方法完全将我讲蒙了,心情持续下降。又百度一番,众说云云,让我下载JDK1.6的版本,修改环境变量并重启机子,心想真是个好方法,信了才有鬼了呢,说的和真的一样。随后又百度一番,换了n种方法,终找到解决方法。

讲解:

Step1:

(此为修改后的代码)

import java.sql.*;
public class Example14_1 {
    public static void main(String args[]) {
        Connection con;
        Statement sql;
        ResultSet rs;
        try {Class.forName("com.hxtt.sql.access.AccessDriver");  
        }
        catch(ClassNotFoundException e) {
            System.out.print(e);
        }
        try {
            con=DriverManager.getConnection("jdbc:Access:///f:/factory.accdb");  //红色标的为修改的内容,文件的路径自己改
            sql=con.createStatement();
            rs=sql.executeQuery("SELECT*FROM employee WHERE salary>1900");
            while(rs.next()) {
                String number=rs.getString(1);
                String name=rs.getString(2);
                Date date=rs.getDate("birthday");
                double salary=rs.getDouble("salary");
                System.out.printf("%-4s",number);
                System.out.printf("%-6s",name);
                System.out.printf("%-15s", date.toString());
                System.out.printf("%6s\n", salary);
            }
            con.close();
        }
        catch(SQLException e) {
            System.out.println(e);
        }
    }

}

Step2:

下载jar包, 下载链接:https://pan.baidu.com/s/1xBWgYxrauU7300Jw0T-wFQ    密码:7cci

Step3:

将jar包放入项目中,右击你的项目右击创建的Access连接项目-->Build Path-->Configure Build Path-->Libraries-->Add External JARs。

完成。

效果图:

JDK1.8版本Elipse建立JDBC-ODBC连接Access数据库的问题及解决——亲测有效,良心教程