问题:
由书中所述并试验后发现,编译出现异常。
原因:
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。
完成。
效果图: