没有为jdbc.sqlite找到合适的驱动程序

时间:2017-03-19 16:48:16

标签: java sql

所以首先我已经看到过这个问题了 - 我查看了以前的答案并尝试用它来解决我的问题,但是我做不到。

我正在创建一个库系统,并为寄存器类和登录类编写代码,以及为数据库创建一个类。当我尝试运行程序时,我收到一条消息,说没有找到合适的驱动程序,后面跟着数据库的文件路径。这是我的数据库类:

    import java.sql.*;
    import javax.swing.JOptionPane;



   public class javaConnect {
   Connection conn;

public static Connection ConnecrDB() {
    try {
        Class.forName("org.sqlite.JDBC");
        Connection conn=DriverManager.getConnection("jdbc.sqlite:process_f/Users/conorcurtis/Desktop/UNI/GCU IP Library/LibraryProject.sqliteiles");
        return conn;
    } catch(Exception e) {
        JOptionPane.showMessageDialog(null, e);
        return null;
    }

我完全不知道该去哪里,所以任何帮助都会受到赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

这里可能发生的是你的驱动程序不在你的类路径中。您当前的问题是您正在动态加载驱动程序,但找不到它。

通过添加到import指令,可以在调试时将其转换为编译时错误:

import org.sqlite.JDBC;

不同之处在于import指令是编译时依赖项,而Class.forName调用则建立运行时依赖项。通常我们这样做,所以我们可以在不重新编译的情况下更改使用哪些数据库(但是这里你的连接字符串是硬连线的,所以没有必要动态地进行)。例如,我们可以允许配置连接字符串,然后动态加载适当的驱动程序。

所以现在,添加该导入行并解决为什么找不到该类的问题。您可能有构建或类路径问题。例如,如果您正在使用maven,则需要将其添加到那里。

编译完成后,可以删除import指令并将错误恢复为运行时错误。

但基本清单是:

  1. 图书馆可用吗?
  2. 是否在搜索的路径中?
  3. 您是否有自动依赖管理工具(如maven)将其作为依赖项缺失?