【问题标题】:How can I connect to an Access database from Java using JDBC?如何使用 JDBC 从 Java 连接到 Access 数据库?
【发布时间】:2011-12-14 12:08:41
【问题描述】:

如何使用 JDBC 从 Java 连接到 Access 数据库?

OP 评论中提供的代码

public static Connection getConnection() throws SQLException { 
    // connection object
    Connection con = null;

    // database url
    String connectionString = "jdbc:odbc:Driver= " 
            + "{Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + dbPath;

    try {
        Class.forName(driver);
        con = DriverManager.getConnection(connectionString);
    } catch (ClassNotFoundException ex) {
        System.out.println("connot load driver class");
        return con;
    }
}

【问题讨论】:

  • 你试过向谷歌询问jdbc msaccess吗?
  • 是的 :) 但我还是有问题
  • 所以也许你可以告诉我们你的问题,到目前为止你尝试了什么?
  • public static Connection getConnection() throws SQLException { // 连接对象 Connection con = null; // 数据库 url String connectionString = "jdbc:odbc:Driver= " + "{Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + dbPath;尝试 { Class.forName(driver); con = DriverManager.getConnection(connectionString); } catch (ClassNotFoundException ex) { System.out.println("connot load driver class"); } 返回骗局; }
  • @soad el-hayek,不要在帖子部分发布您的代码,而是使用您的代码和您获得的堆栈跟踪来更新您的问题。

标签: java ms-access jdbc


【解决方案1】:

你可以使用

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

// set this to a MS Access DB you have on your machine

String filename = "d:/java/mdbTEST.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}"; // add on to the end 
// now we can get the connection from the DriverManager
Connection con = DriverManager.getConnection( database ,"",""); 

参考http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2691&lngWId=2

【讨论】:

  • 我使用相同的公共静态连接 getConnection() throws SQLException { Connection con = null; String connectionString = "jdbc:odbc:Driver= " + "{Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + dbPath; try { // 加载驱动类 Class.forName(driver); con = DriverManager.getConnection(connectionString); } catch (ClassNotFoundException ex) { System.out.println("connot load driver class"); } // 返回连接对象 return con; }
【解决方案2】:

为此,您需要 ODBC-JDBC 桥。

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2691&lngWId=2 示例源代码。 和 http://www.youtube.com/watch?v=iXkGMu70HuM 看看如何设置数据源 (DSN)。

【讨论】:

  • 对于视频,我赢了 7 64 位
【解决方案3】:

还有一个替代方案 - JDBC to ODBC Bridge - 具有客户端/服务器架构...

这意味着 Java 应用程序和 Access 数据库可以驻留在不同的机器上。

下面的链接会让你知道去哪里--

OpenLink Milti-tier JDBC to ODBC Bridge

【讨论】:

    【解决方案4】:
    public class NewClass {
    static final String DRIVER = "com.mysql.jdbc.Driver";
    static final String DATABASE_URL = "jdbc:mysql://localhost/databasename";
    Connection connection = null;
    Statement statement = null;
    ResultSet resultSet = null;
    public void dataQuery(String queryData) {
        Class.forName(DRIVER);
        connection = DriverManager.getConnection(DATABASE_URL, "root", "");
        statement = connection.createStatement();
        resultSet = statement.executeQuery(queryData);
        while (resultSet.next()) {
            System.out.println(resultSet.getObject(1));
        }
    }    
    catch (Exception e) {            
        System.out.println("error Accessing");
    }finally {
        try {
            resultSet.close();
            statement.close();
            connection.close();
        } catch (Exception exception) {
            System.out.println("error closing ");}
    }
    }
    }
    

    【讨论】:

      【解决方案5】:

      您可以使用 ODBC 连接从 Java 连接到 Access 数据库。

      看下面的例子

      http://www.csnotes32.com/2014/11/how-to-read-write-update-and-list-data.html

      【讨论】:

        【解决方案6】:

        现在 JDBC-ODBC 桥已从 Java 中删除(自 Java SE 8 起),未来的读者应该考虑改用 UCanAccess JDBC 驱动程序。有关详细信息,请参阅

        Manipulating an Access database from Java without ODBC

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-18
          • 1970-01-01
          • 2012-09-27
          • 2013-10-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多