32位Win7,32位JDK和32位MS Access导致java.sql.SQLException:找不到合适的驱动程序

时间:2014-05-13 18:41:44

标签: java windows jdbc odbc datasource

我有32位Win7,32位Office 2010和32位JDK 8u5并试图访问MS Acess数据库。当我尝试创建连接时,我得到java.sql.SQLException:找不到合适的驱动程序

这之间没有区别:

Connection konekcija = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\\Marko\\NetBeansProjekat\\dnevnik.accdb");

创建名为" dnevnik"的ODBC数据源在Administtrative工具中使用它如下:

Connection konekcija = DriverManager.getConnection("jdbc:odbc:dnevnik");

在ODBC数据源中我安装了Microsoft Access驱动程序(* .mdb,* .accdb)。

这是抛出异常的整个方法

public static List<Odeljenje> vratiSvaOdeljenja(){
   List<Odeljenje> result = new ArrayList<>();
    try {  
        Connection konekcija = DriverManager.getConnection("jdbc:odbc:dnevnik");
        String upit = "SELECT * FROM tOdeljenje";
        Statement st = konekcija.createStatement();
        ResultSet rs = st.executeQuery(upit);
        while (rs.next()) {
            long odeljenjeID = rs.getLong("OdeljenjeID");
            String oznakaOdeljenja = rs.getString("OznakaOdeljenja");               

            Odeljenje o = new Odeljenje(odeljenjeID, oznakaOdeljenja);
            result.add(o);
        }
        konekcija.close();
    } catch (SQLException ex) {
        Logger.getLogger(RadSaBazom.class.getName()).log(Level.SEVERE, null, ex);
    }
    return result;
}

提前谢谢你:)

1 个答案:

答案 0 :(得分:3)

在Java8中删除了JDBC-ODBC Bridge。推理阅读this

您可以专门为Access使用JDBC驱动程序,如UCanAccess

有关UCanAccess的更多信息,请阅读this question