将Java 8与Access连接时出错:找不到合适的驱动程序

时间:2014-12-20 04:42:53

标签: java database ms-access-2007 ucanaccess

我想将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
    }

2 个答案:

答案 0 :(得分:0)

  

我添加了4个库

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

有关详细说明,请参阅

Manipulating an Access database from Java without ODBC

答案 1 :(得分:-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 ...并且已从Java 8中删除了ODBC驱动程序。

有两种选择:

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)考虑使用名称

中没有空格的目录