簡體   English   中英

Java Access數據庫連接

[英]Java Access DB Connection

我嘗試使項目與數據庫連接(MS Access 2010), 並在CodeProject上使用本教程。

import java.sql.*;

public class DbAccess
{
    public static void main(String[] args)
    {
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String database = 
              "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;";
            Connection conn = DriverManager.getConnection(database, "", "");
            Statement s = conn.createStatement();

            // create a table
            String tableName = "myTable" + String.valueOf((int)(Math.random() * 1000.0));
            String createTable = "CREATE TABLE " + tableName + 
                                 " (id Integer, name Text(32))";
            s.execute(createTable); 

            // enter value into table
            for(int i=0; i<25; i++)
            {
              String addRow = "INSERT INTO " + tableName + " VALUES ( " + 
                     String.valueOf((int) (Math.random() * 32767)) + ", 'Text Value " + 
                     String.valueOf(Math.random()) + "')";
              s.execute(addRow);
            }

            // Fetch table
            String selTable = "SELECT * FROM " + tableName;
            s.execute(selTable);
            ResultSet rs = s.getResultSet();
            while((rs!=null) && (rs.next()))
            {
                System.out.println(rs.getString(1) + " : " + rs.getString(2));
            }

            // drop the table
            String dropTable = "DROP TABLE " + tableName;
            s.execute(dropTable);

            // close and cleanup
            s.close();
            conn.close();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
}

但是我得到奇怪的異常:java.sql.SQLException:[Microsoft] [????????? ????????? ODBC] ???????? ?????? ?? ?????? ?? ?????? ???????,???????????? ?? ?????????

java.sql.SQLException:[Microsoft] [????????? ????????? ODBC] ???????? ?????? ?? ?????? ?? ?????? ???????,???????????? ?? ????????? 在sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)在sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)在sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java )在sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)在sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)在java.sql.DriverManager.getConnection(DriverManager.java:579)在dbaccess.DbAccess.main(DbAccess.java:28)上的java.sql.DriverManager.getConnection(DriverManager.java:221)上

我用Google搜索它,然后在Stack上找到其他類似的問題: Stack Post

因此,我添加了可以幫助我連接* .mdb文件的所有ODBC驅動程序。 但是沒有什么好辦法的。(

這是什么以及如何連接到Access DB?

您的代碼從根本上沒有錯,因為我將其粘貼到了Eclipse中並且運行良好。 我所做的唯一更改是指定數據庫文件的路徑,即,而不是使用

DBQ=myDB.mdb

我用了

DBQ=C:\\__tmp\\myDB.mdb

我也在32位JVM(在32位計算機上)下運行它。 所以,我的建議是

  1. 像我一樣嘗試指定.mdb文件的完整路徑。

  2. 如果仍然出現錯誤,請檢查Java環境以查看您的應用程序是否在64位JVM中運行。 如果是這樣,那么Driver={Microsoft Access Driver (*.mdb)}將不起作用:沒有較舊的Jet ODBC驅動程序的64位版本。 在這種情況下,您有兩種選擇:

    一世。 配置您的應用程序以使其在32位JVM中運行,或者

    ii。 此處下載並安裝Access數據庫引擎的64位版本,然后使用Driver={Microsoft Access Driver (*.mdb, *.accdb)}

現在,從Java 8中刪除了JDBC-ODBC橋,更好的方法是使用UCanAccess JDBC驅動程序。 有關更多信息,請參見

在不使用ODBC的情況下從Java操作Access數據庫

暫無
暫無

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

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