我的连接代码:
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)中使用与示例中相同的驱动程序来完成此操作。我尝试了不同的驱动程序,但该消息仍然出现。
7条答案
按热度按时间csga3l581#
您的类路径缺少包含sqlite类和驱动程序的jar。您需要类似sqlite-jdbc-3.7.2.jar或您的适用版本。
如果你确定jar文件已经存在,在创建连接之前,尝试添加这行代码:
hwamh0ep2#
我也有同样的问题。我使用了maven并添加了依赖项:
它可以被编译,我得到:
未找到适用于jdbc:sqlite:xx.db的驱动程序
我检查了类路径,我确信sqlite-jdbc-3.15.1.jar在那里。我猜由于某种原因,类没有加载,我不知道为什么。所以我加了一句
System. out. println(“println”);
在代码的开头。成功了!
然后,我删除上面的行。它还能用!我清理了项目并重新构建了它,不再需要Class.forName()了!我还是不知道为什么但问题解决了。我认为Class.forName()可以用来诊断你需要的类是否在类路径中。
hjzp0vay3#
同时检查数据库连接字符串是否引用了现有数据库。
如果您:
如果仍然出现“No suit driver”错误消息,则很可能是由于您的数据库路径不正确导致的。检查路径是否存在。
引用现有数据库文件的格式正确的连接字符串:
windows
Linux
xv8emn3q4#
如果你使用Maven并想构建一个可执行的jar,你可以决定将sqlite jar的内容导入到你自己生成的jar中:
您不必像其他答案中建议的那样添加特定的类路径或隐式用法。
wn9m85ua5#
下面是中央存储库的链接,您可以从中下载最新的驱动程序文件。
https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/
确保下载的是sqlite-jdbc-version.jar文件,而不是其他文件。希望这个能帮上忙
dluptydi6#
我在使用简单的Gradle配置时也遇到了类似的问题,如下所示
我后来发现Gradle build正在创建一个不包含任何外部依赖项的jar。下面的配置将用于在生成的jar文件中包含所有依赖库,沿着源文件,以创建一个fat-jar:
5cnsuln77#
版本3.7.2的问题尝试安装3.21.0吧