如何将SQLite与Java连接?
我使用一个简单的代码从Java应用程序访问SQLite数据库。 我的代码是如何将SQLite与Java连接?,java,sqlite,jdbc,classpath,Java,Sqlite,Jdbc,Classpath,我使用一个简单的代码从Java应用程序访问SQLite数据库。 我的代码是 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ConnectSQLite { public static void main(String[] args) {
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectSQLite
{
public static void main(String[] args)
{
Connection connection = null;
ResultSet resultSet = null;
Statement statement = null;
try
{
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
statement = connection.createStatement();
resultSet = statement
.executeQuery("SELECT EMPNAME FROM EMPLOYEEDETAILS");
while (resultSet.next())
{
System.out.println("EMPLOYEE NAME:"
+ resultSet.getString("EMPNAME"));
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
resultSet.close();
statement.close();
connection.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
但这段代码给出了一个例外,比如
java.lang.ClassNotFoundException: org.sqlite.JDBC
我如何解决这个问题,请帮助我。您的类路径中需要一个SQLite JDBC驱动程序
Taro L.Saito(xerial)提出了Zentus项目,现在以该项目的名义进行维护。它捆绑了主要平台的本机驱动程序,因此您无需单独配置它们。如果您使用的是netbeans,请下载 在“项目”窗口中的“库”文件夹上单击鼠标右键,然后选择“添加库”, 然后单击Create按钮输入库名称(SQLite)并点击OK 您必须将sqlitejdbc驱动程序添加到类路径中,单击 添加Jar/文件夹。。按钮并选择先前下载的sqlitejdbc文件
点击OK,你就可以出发了 我正在使用Eclipse,我复制了您的代码,并得到了相同的错误。然后我打开了项目属性->Java构建路径->库->添加外部JAR。。。 c:\jrun4\lib\sqlitejdbc-v056.jar 工作得很有魅力。如果刚刚复制了.jar文件,则可能需要重新启动web服务器
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
而不是这个
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb");
嘿,我在youtube上发布了一个视频教程,你可以检查一下,你可以在这里找到示例代码:
如果您使用的是
Netbeans
,那么使用Maven
添加库就更容易了。我尝试过使用上述解决方案,但没有成功
<dependencies>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.7.2</version>
</dependency>
</dependencies>
org.xerial
sqlite jdbc
3.7.2
我添加了
Maven
依赖项和java.lang.ClassNotFoundException:org.sqlite.JDBC
错误消失。您必须下载sqlite JDBC驱动程序并将其添加到类路径。你可以从这里下载 如果使用Gradle,则只需添加SQLite依赖项:
dependencies {
compile 'org.xerial:sqlite-jdbc:3.8.11.2'
}
接下来要做的是初始化驱动程序:
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException eString) {
System.err.println("Could not init JDBC driver - driver not found");
}
我猜您并没有将SQLite jar放在ClassPath中,我使用的是这个驱动程序,并且运行良好。但为什么不在创建时压缩数据库呢?使用FireFox sqlite插件,数据库从11.5MB压缩到11.3MB。如何使用java实现这一点。@Dyapa您需要定期运行
VACUUM
;由于JDBC实际上并不解释SQL(有很好的理由),所以只需将其发送过来即可。或者使用pragma per connection以自动真空模式运行。@DonalFellows您可以解释如何通过java运行真空。对于那些在Tomcat中遇到此问题的用户,需要将此jar放入相应Tomcat版本的lib文件夹中。Tomcat也需要重新启动。在web应用程序中,jar也需要放在web-INF库文件夹中。您不需要将其添加到生成路径,因为将其放在WEB-INF库文件夹中会自动将其放置在那里。@AndroidAdd谢谢您,兄弟,您节省了我的时间:)我为此问题付出了很多努力。我是一名Java新手,正在使用Netbeans。这是一种挫折。最后,你的答案救了我一天。对于一个相对具体的问题,要了解很多不相关的代码。不是说这是一个糟糕的视频/代码,但不是针对这个问题的。我使用的是dataSource.setDatabaseName(…)
,但它不起作用。现在我知道我需要使用dataSource.setUrl(…)
。谢谢。:-)
dependencies {
compile 'org.xerial:sqlite-jdbc:3.8.11.2'
}
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException eString) {
System.err.println("Could not init JDBC driver - driver not found");
}