簡體   English   中英

如何使用Java程序連接MS Access數據庫?

[英]How to connect MS Access Database using Java program?

我想編寫一個程序來從MS Access數據庫中檢索數據。 我寫的節目如下:

package db;

import java.sql.*;

public class MSaccess_archive {
    public static void main(String[] args) {

        try {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

            String accessFileName = "E:/L4_project/sample/db/Database";

            String connURL="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+accessFileName+".accdb;";

            Connection con = DriverManager.getConnection(connURL, "","");

            Statement stmt = con.createStatement();

            stmt.execute("select * from student"); // execute query in table student

            ResultSet rs = stmt.getResultSet(); // get any Result that came from our query

            if (rs != null)
             while ( rs.next() ){

                System.out.println("Name: " + rs.getString("Name") + " ID: "+rs.getString("ID"));
                }

                stmt.close();
                con.close();
            }
            catch (Exception err) {
                System.out.println("ERROR: " + err);
            }
    }

}

但是我得到了以下異常:

錯誤:java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驅動程序]找不到文件'(未知)'。

當我使用.mdb文件時,上面的程序正常工作,但如果我使用.accdb文件,它會給出上述異常。

有什么想法嗎?

您可以重新訪問步驟,控制面板>管理工具>數據源>添加> Microsoft Access驅動程序(* mdb,* accdb)>確定>確定>確定。 它可能工作。用於ODBC連接。

JDBC-ODBC Bridge已從Java 8中刪除 ,不受支持(參考: 此處此處 )。 UCanAccess是一種流行的替代品。 有關詳情,請參閱

在沒有ODBC的情況下從Java操作Access數據庫

我認為您需要指定jdbc:odbc:my_access_odbc_dsn作為URL,其中my_access_odbc_dsn是您在ODBC中配置的DSN名稱。 就我而言,我正在訪問一個名為“PavoDB”的MS Access 2013數據庫,所以我的URL是:

private static final String url="jdbc:odbc:PavoDB";

除非你特別需要能夠運行任意的sql查詢,你總是可以試試jackcess

驅動程序可能尚未更新以讀取該格式。 .mdb是Access的原始版本; .accdb必須已修改,ODBC驅動程序沒有跟上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM