java.lang.ClassNotFoundException:net.ucanaccess.jdbc.ucanaccessDriver

问题描述 投票:0回答:3

我是java初学者,使用控制台来编译和运行我的程序。我正在尝试使用 ucanaccess 驱动程序从 MS Access .accdb 文件读取数据。由于我已将 5 个 ucanaccess 文件添加到 C:\Program Files\Java\jdk1.8.0_60\jre\lib xt,但仍然出现异常 java.lang.ClassNotFoundException:net.ucanaccess.jdbc.ucanaccessDriver。 这是我的代码。

import java.sql.*;
public class jdbcTest 
{
    public static void main(String[] args)
    {
        try
        {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            String url = "jdbc:ucanaccess://C:javawork/PersonInfoDB/PersonInfo.accdb";
            Connection conctn = DriverManager.getConnection(url);
            Statement statmnt = conctn.createStatement();
            String sql = "SELECT * FROM person";
            ResultSet rsltSet = statmnt.executeQuery(sql);
            while(rsltSet.next())
            {
                String name = rsltSet.getString("name-");
                String address = rsltSet.getString("address");
                String phoneNum = rsltSet.getString("phoneNumber");

                System.out.println(name + " " + address + " " + phoneNum);
            }
            conctn.close();
        }
        catch(Exception sqlExcptn)
        {
            System.out.println(sqlExcptn);
        }
    }
}
jdbc console ucanaccess
3个回答
1
投票

请将 JDBC 驱动程序 jar 添加到 lib 文件夹。 下载地址下载jar


0
投票

升级以摆脱漏洞

就我而言,错误是在从

hsqldb
中排除
ucanaccess
后出现的,因此我可以使用
hsqldb
的 2.7.2 版本,没有安全漏洞。但显然,它与任何版本的
ucanaccess
都不兼容。

该解决方案以 Source Forge 项目的分叉形式出现,保存在 GitHub 中:io.github.spannm:ucanaccess。这个版本 5.1.0 继承了原始团队留下的内容(5.0.1 版本),并且与我使用 3.0.6 版本的代码直接兼容。只是将依赖项更改为

  <dependency>
    <groupId>io.github.spannm</groupId>
    <artifactId>ucanaccess</artifactId>
    <version>5.1.0</version>
  </dependency>

项目再次运行,hsqldb 没有漏洞。


-1
投票

我尝试了Gord在他的文章在没有ODBC的情况下从Java操作Access数据库中提到的方法,并使用eclipse而不是命令行编译和运行。另外为了学习 Eclipse 基础知识,我观看了视频教程 https://www.youtube.com/watch?v=mMu-JlBrYXo。 最后我能够从我的java代码中读取我的MS Access数据库文件。

© www.soinside.com 2019 - 2024. All rights reserved.