无法连接到数据库(找不到合适的驱动程序)

新手上路,请多包涵

我的连接代码:

 try {
  Connection con = DriverManager.getConnection("jdbc:sqlite:myDB.sqlite");
  PreparedStatement pstm = con.prepareStatement("insert into hell(username,pssword) " +
"values ('"+tfUname.getText()+"','"+tfUpass.getText()+"')");

  pstm.close();
  con.close();
  JOptionPane.showMessageDialog(null,"Congrats, you have been registered succesfully");
  RegisterWindow rw = new RegisterWindow();
  rw.setVisible(false);
  pack();
  dispose();
} catch(SQLException ex) {
  setTitle(ex.toString());
}

这只是一个将用户名和密码插入数据库的窗口。当我单击按钮时出现以下异常:

 "java.sql.SQLException: No suitable driver found for jdbc:sqlite:C\\LoginJava2\\myDB.sqlite"

我找到了一个如何在 Java 中连接到 SQLite 数据库的示例,该示例运行良好。我在 WindowBuilder (Eclipse) 中执行此操作,使用示例中的相同驱动程序。我尝试了不同的驱动程序,但该消息仍然出现。

原文由 Fenrir86 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 766
2 个回答

您的类路径缺少包含 sqlite 类和驱动程序的 jar。您需要类似 sqlite-jdbc-3.7.2.jar 或适用版本的东西。

如果您确定 jar 在那里,请尝试在创建连接之前添加这行代码:

 Class.forName("org.sqlite.JDBC");

原文由 JamesB 发布,翻译遵循 CC BY-SA 4.0 许可协议

我遇到了同样的问题。我使用了 maven 并添加了依赖项:

     <dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.15.1
        </version>
    </dependency>

它可以被编译,我得到:

找不到适合 jdbc:sqlite:xx.db 的驱动程序

我检查了类路径,我确定 sqlite-jdbc-3.15.1.jar 在那里。我猜是出于某种原因,类没有加载,我不知道为什么。所以我加了

Class.forName(“org.sqlite.JDBC”);

在我的代码的开头。有效!

并且,我删除了上面的行。它仍然有效!我清理了项目并重建了它,不再需要 Class.forName() 了!!!我仍然不知道为什么。但是问题解决了。我认为 Class.forName() 可用于诊断您需要的类是否在类路径中。

原文由 Lucas Liu 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题