关于JAVA访问Access的的测试这不是默认标题啊
java菜鸟,轻喷
有借鉴,不算原创吧 <_>!
1.我的jdk版本是1.8,
用Eclipse编写
昨天下载安装的Microsoft Access 32位,免费试用0ffice365.
没有采用Access_JDBC30.jar,使用的是第三方的驱动可以访问 Access 数据库 UCanAccess;
UCanAccess 下载地址:https://jaist.dl.sourceforge.net/project/ucanaccess/UCanAccess-4.0.4-bin.zip;
同时,这篇文章值得借鉴:https://stackoverflow.com/questions/21955256/manipulating-an-access-database-from-java-without-odbc.
解压UCanAccess-4.0.4-bin.zip,不使用这个包:ucanload.jar
使用文件夹中的这5个包:
commons-lang-2.6.jar
commons-logging-1.1.3.jar
hsqldb.jar
jackcess-2.1.11.jar
ucanaccess-4.0.4.jar
将这5个包导入到正在用的java工程中:
先点击工程项目名(我的是myGUI),点击菜单栏中的File > Properties > Java Build Path > Libraries > Add External JARs,如图所示
导入如图
后面是在D盘新建一个Student.accdb的access文件目录如下:D:/Student.accdb
建立一个chengjidan 表,简单写了下个人信息:
测试程序:
package javatoaccess;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class AccessTest {
public static void main(String[] args) throws ClassNotFoundException,SQLException{
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
String accdbPath = "D:/Student.accdb";
Connection conn = DriverManager.getConnection("jdbc:ucanaccess://" + accdbPath);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT*FROM chengjidan");
System.out.println("连接Access成功");
while(rs.next()){
long id = rs.getLong("ID");
String name = rs.getString("Name");
Date birthday = rs.getDate("Birthday");
System.out.println(id+"\t"+name+"\t"+birthday);
}
rs.close();
stmt.close();
conn.close();
}
}
测试结果: