【问题标题】:Error connecting Java 8 with Access: No suitable driver found [duplicate]将 Java 8 与 Access 连接时出错:找不到合适的驱动程序 [重复]
【发布时间】:2015-02-19 00:50:31
【问题描述】:

我想将 Java 8 与 Access 连接,但出现以下错误,我不知道如何修复它。我总是收到这个错误:

java.sql.SQLException: 找不到适合 jdbc:ucanaccess://C:/Users/Ghazi/workspace/java w access/login.accdb 的驱动程序

我添加了 4 个库:

  • hsqldb.jar
  • jackcess-2.0.7.jar
  • org.apache.commons.lang-2.6-source.jar
  • org.apache.commons.loggin-1.1.1-source.jar

这是我的代码

import java.sql.*;
public class DbConnection {
    Connection con;
    Statement st;
    DbConnection(){
        dbconnect();
        }
    //-----------------------
    public void dbconnect(){
        try
        {
     Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:/Users/Ghazi/workspace/java w access/login.accdb");
      Statement stment = conn.createStatement();
        }
        catch(Exception err)
        {
            System.out.println(err);
        }
    }
    //--------------------------
        public static void main(String[]args){
            DbConnection ob=new DbConnection();
            }//end main
    }

【问题讨论】:

    标签: java database ms-access-2007 ucanaccess


    【解决方案1】:

    尝试添加“Class.forName():

       public void dbconnect(){
         try  {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:/Users/Ghazi/workspace/java w access/login.accdb");
            Statement stment = conn.createStatement();
         }
         catch(Exception err) {
           System.out.println(err);
         }
       }
    

    基本问题是早期版本的 Java/JDBC 使用 ODBC 连接到 MS-Access ...并且 ODBC 驱动程序已从 Java 8 中删除。

    有两种选择:

    1) UCanAccess:http://ucanaccess.sourceforge.net/site.html

    ...或...

    2) Jackcess(Jackcess 2.0:新的脆脆外皮,同样美味的馅料!):http://jackcess.sourceforge.net/

    如果这不起作用:

    3) 请说明您使用的是什么 IDE(Eclipse 等 - 如果适用)

    4) 确保您的 jackcess-2.0.7.jar 明确包含在 CLASSPATH 中(如何执行此操作取决于您的 IDE)

    5) 考虑使用名称中不带空格的目录

    【讨论】:

    • 谢谢老哥,但还是不行,我用eclipse我加了jackcess-2.0.7.jar和其他3个库,但没有解决我的问题
    • 您只需要 一个 库 (jackcess-2.0.7.jar) 并且在运行/调试 CLASSPATH 中需要它(不仅仅是构建路径)。另外:“forName()”有帮助吗?从文件路径中删除空间?附加建议:在调用 getConnection() 之前尝试DriverManager.getDrivers() 并列出所有 JDBC 驱动程序 - 看看我们的朋友“ucanaccess”是否已注册。听起来这就是问题所在。
    • 您似乎没有添加 ucanaccess.jar,它不在您的列表中。它位于 ucanaccess 发行版的根目录中,最后你需要五个罐子。
    • Class.forName() 绝对不需要
    • 添加Class.forName()肯定会导致Eclipse IDE的“导出...>可运行JAR文件”功能做一些好事;没有它,我得到No suitable driver found,有了它,我得到了数据库访问权限。
    【解决方案2】:

    我添加了 4 个库

    您需要五 (5) 个库。您忘记添加“ucanaccess-x.y.z.jar”文件本身。

    有关详细说明,请参阅

    Manipulating an Access database from Java without ODBC

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 2017-08-26
      • 1970-01-01
      • 2014-01-04
      • 2014-02-09
      • 1970-01-01
      • 2018-07-09
      相关资源
      最近更新 更多