簡體   English   中英

Java無法使用Eclipse連接到MS Access數據庫

[英]Java not connecting to MS Access database using Eclipse

誰能幫我? 我已經嘗試解決了一個小時,但我仍然感到困惑。 下面是我的代碼,編譯時出現此錯誤。

輸出味精::

DriverLoaded
Could Not Connect to Databasejava.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at DBConnect.<init>(DBConnect.java:11)
    at DBConnect.main(DBConnect.java:21)

碼::

import java.sql.*;

public class DBConnect {

    public DBConnect() {    
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            System.out.println("DriverLoaded");
            String url = "jdbc:odbc:; DRIVER = Microsoft Access Driver (*.mdb, *.accdb); DBQ = DB.accdb";
            Connection con = DriverManager.getConnection(url);
            System.out.println("Connection Established Successfully");
        } catch(Exception e) {
            e.printStackTrace();
            System.out.println("Could Not Connect to Database");
        }
    }

    public static void main (String args[]) {       
        DBConnect dbcon = new DBConnect();  
    }
}

getConnection()重載方法

1) getConnection( String url, Properties info )

url-格式為jdbc:subprotocol:subname的數據庫URL

info-任意字符串標記/值對的列表作為連接參數; 通常至少應包括“用戶”和“密碼”屬性

2) getConnection( String url, String user, String password )

url-格式為jdbc:subprotocol:subname的數據庫URL

user-代表建立連接的數據庫用戶

密碼-用戶的密碼

3) getConnection( String url )

url-格式為jdbc:subprotocol:subname的數據庫URL

考慮到您使用的是最后一個構造函數,看來您的url語法不正確。 我對MS Access並不熟悉,但是我會提供我在另一個答案中發現的建議。

這是你的語法

"jdbc:odbc:; DRIVER = Microsoft Access Driver (*.mdb, *.accdb); DBQ = DB.accdb"

我發現的正確語法是

File f = new File("\\\\***\\***\\****\\***.accdb");

"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + f.getAbsolutePath();

看起來您在odbc之后有多余的分號和多余的空間。 也許您想嘗試上面的語法,看看會發生什么。 我不確定文件部分,但如果在進行分號/空格修復后,您的網址仍然失敗,則可能需要調查一下。

還要查看此問題,以獲取有關其他選項的更多信息使用用戶名和密碼連接

下面是您的問題的工作代碼...

import java.sql.*;

public class DBConnect {

    public DBConnect() {    
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            System.out.println("DriverLoaded");
            String url = "jdbc:odbc:instance";
            Connection con = DriverManager.getConnection(url);
            System.out.println("Connection Established Successfully");
        } catch(Exception e) {
            e.printStackTrace();
            System.out.println("Could Not Connect to Database");
        }
    }

    public static void main (String args[]) {       
        DBConnect dbcon = new DBConnect();  
    }
}

要遵循的步驟:

  1. 在Windows XP系統的任何目錄中創建一個訪問數據庫DB.accdb。
  2. 打開開始>控制面板>性能和維護>管理工具>數據源(ODBC)>單擊“系統DSN”選項卡>單擊“添加”>選擇Microsoft Access Driver(accdb,mdb)>命名:instance,(因為getConnection(“ jdbc: odbc:instance“),然后單擊並瀏覽位於硬盤驅動器中的DB.accdb),按ok並重新啟動命令提示符。 然后再次運行代碼。

    在Eclipse中運行相同的代碼

  3. 創建一個Java項目。

  4. 添加一個主類並編輯該主類的源代碼。 只需復制並粘貼about代碼即可。
  5. 通過從jdk / bin目錄添加jar文件來創建用戶庫。
  6. 通過鏈接用戶庫將構建路徑鏈接到項目。
  7. 運行項目。

暫無
暫無

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

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