Fen*_*r86 20 java eclipse sqlite windowbuilder
我希望有一个人可以帮助我.我正在开发一个与SQLite数据库连接的简单应用程序.以下是我的连接代码:
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());
}
Run Code Online (Sandbox Code Playgroud)
这只是一个在数据库中加载用户名和密码的窗口.我遇到的问题是当我点击按钮时出现以下异常:
"java.sql.SQLException: No suitable driver found for jdbc:sqlite:C\\LoginJava2\\myDB.sqlite"
Run Code Online (Sandbox Code Playgroud)
(我找到了一个关于如何用Java连接到SQLite数据库的例子,我发现这个例子效果很好)
这个程序我在窗口构建器(eclipse)中这样做.我使用的是我在我找到的示例中使用的相同驱动程序.我不知道是否必须使用其他驱动程序.事实上,我尝试过不同的驱动程序,但仍然会显示该消息.
Jam*_*esB 32
您的类路径缺少包含sqlite类和驱动程序的jar.你需要像sqlite-jdbc-3.7.2.jar或你的适用版本.
如果您确定jar在那里,请尝试在创建连接之前添加以下代码:
Class.forName("org.sqlite.JDBC");
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题。我使用了maven并添加了依赖项:
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.15.1
</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
它可以被编译,我得到:
找不到适用于jdbc:sqlite:xx.db的驱动程序
我检查了类路径,并确定sqlite-jdbc-3.15.1.jar在那里。我猜出于某种原因,该类未加载,我不知道为什么。所以我加了
Class.forName(“ org.sqlite.JDBC”);
在我的代码的开头。有效!
并且,我删除上面的行。它仍然有效!我清理了项目并重新生成它,不再需要Class.forName()!!!我还是不知道为什么。但是问题解决了。我认为Class.forName()可用于诊断您所需的类是否在类路径中。
另请检查您的数据库连接字符串是否引用了现有数据库。
在这种情况下,您:
如果仍然出现“Nosuit driver”错误消息,则很可能是由于您的数据库路径不正确造成的。检查路径是否存在。
引用现有数据库文件的格式正确的连接字符串:
视窗
DriverManager.getConnection("jdbc:sqlite:D:\\db\\my-db.sqlite").
Run Code Online (Sandbox Code Playgroud)
Linux
DriverManager.getConnection("jdbc:sqlite:/your/somepath/my-db.sqlite").
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34848 次 |
| 最近记录: |