如何使用Java连接我的Access数据库

时间:2016-07-03 20:18:42

标签: java ms-access jdbc connection

我有以下代码

import java.sql.*;
public class UserLogin {
    public static void main(String[] args) {
        try {
            // Load MS accces driver class
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

            // C:\\databaseFileName.accdb" - location of your database 
            String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,    *.accdb)};DBQ=" + "C:\\AGENDAS\\Agenda.accdb";

            // specify url, username, pasword - make sure these are valid 
            Connection conn = DriverManager.getConnection(url, "Java2016", "Java2016");

            System.out.println("Connection Succesfull");
        } catch (Exception e) {
            System.err.println("Got an exception! ");
            System.err.println(e.getMessage());

        }
    }
}

并抛出下一个错误

  

有例外!

sun.jdbc.odbc.JdbcOdbcDriver

如何建立连接?

2 个答案:

答案 0 :(得分:0)

如果您已经使用了JDK8,我认为您获得的异常是“未找到类”异常。但是由于你没有发布完整的堆栈跟踪,所以它不确定 - 但是,输出中的类名是该方向的强指针。

请检查JDBC URL初始化的来源,我会感兴趣。在驱动程序文档中,未列出此样式:

  

9.3.5 Bridge支持的JDBC URL是什么? Bridge驱动程序使用odbc子协议。这个子协议的URL是   形式:

jdbc:odbc:<data-source-name>[<attribute-name>=<attribute-value>]*
     

例如:

jdbc:odbc:sybase
jdbc:odbc:mydb;UID=me;PWD=secret
jdbc:odbc:ora123;Cachesize=300

http://download.oracle.com/otn_hosted_doc/jdeveloper/904preview/jdk14doc/docs/guide/jdbc/getstart/bridge.doc.html

此外,这是我在ODBC驱动程序的状态中发现的。

  

JDBC-ODBC Bridge的状态

     

JDBC-ODBC Bridge应被视为过渡解决方案;它   将在JDK 8中删除。

http://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/bridge.html

由于您当前正在启动该项目,因此似乎不使用JDBC-ODBC桥。而是使用JDK8并找到涉及SQL.Server express edition的解决方案...

答案 1 :(得分:0)

由于您正在使用Access,我建议使用UCanAccess这是一个开源Java JDBC驱动程序实现,允许Java开发人员和jdbc客户端程序读/写Microsoft Access数据库({{1} }和.mdb个文件)。 我认为它比传统的.accdb桥更简单,更有支持。

下载JDBC-ODBC驱动程序后,您就可以设置连接了:

UCanAccess