Java和SQLite
时间:2020-03-05 18:46:54 来源:igfitidea点击:
我对单个文件数据库提供的简洁性感到着迷。可以使用哪些驱动程序/连接器库来连接SQLite并将其与Java一起使用。
我发现了一个包装器库http://www.ch-werner.de/javasqlite,但是还有其他更著名的项目吗?
解决方案
回答
Wiki列出了更多包装器:
- Java包装器(围绕SWIG接口):http://tk-software.home.comcast.net/
- 一个为SQLite使用JDBC驱动程序的好教程。 (至少有效!)http://www.ci.uchicago.edu/wiki/bin/view/VDS/VDSDevelopment/UsingSQLite
- 跨平台JDBC驱动程序,它使用Windows,Linux,OS X上的嵌入式本机SQLite库,并回退到其他OS上的纯Java实现:https://github.com/xerial/sqlite-jdbc(以前称为zentus)
- 另一个Java-SWIG包装器。它仅适用于Win32. http://rodolfo_3.tripod.com/index.html
- sqlite-java-shell:使用NestedVM构建的sqlite3命令行shell的100%纯Java端口。 (这不是JDBC驱动程序)。
- 适用于Mysaifu JVM的SQLite JDBC驱动程序:适用于Mysaifu JVM的SQLite JDBC驱动程序以及适用于Windows(x86)和Linux(i386 / PowerPC)的SQLite JNI库。
回答
在使用SQLite和Java搜索信息时找到了问题。只是以为我要添加我的答案,该答案也已发布在我的博客上。
我已经用Java编码了一段时间了。我也了解SQLite,但从未使用过。我曾经在其他应用程序中使用过它,但从未在我编写的应用程序中使用过。因此,本周我需要一个项目来使用它,而且它是如此简单!
我找到了SQLite的Java JDBC驱动程序。只需将JAR文件添加到类路径中,然后导入java.sql。*
他的测试应用程序将创建一个数据库文件,发送一些SQL命令以创建一个表,在表中存储一些数据,然后将其读回并显示在控制台上。它将在项目的根目录中创建test.db文件。我们可以使用java -cp。:sqlitejdbc-v056.jar Test运行此示例。
package com.rungeek.sqlite; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class Test { public static void main(String[] args) throws Exception { Class.forName("org.sqlite.JDBC"); Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db"); Statement stat = conn.createStatement(); stat.executeUpdate("drop table if exists people;"); stat.executeUpdate("create table people (name, occupation);"); PreparedStatement prep = conn.prepareStatement( "insert into people values (?, ?);"); prep.setString(1, "Gandhi"); prep.setString(2, "politics"); prep.addBatch(); prep.setString(1, "Turing"); prep.setString(2, "computers"); prep.addBatch(); prep.setString(1, "Wittgenstein"); prep.setString(2, "smartypants"); prep.addBatch(); conn.setAutoCommit(false); prep.executeBatch(); conn.setAutoCommit(true); ResultSet rs = stat.executeQuery("select * from people;"); while (rs.next()) { System.out.println("name = " + rs.getString("name")); System.out.println("job = " + rs.getString("occupation")); } rs.close(); conn.close(); } }
回答
据了解,我们是专门询问SQLite的,但是HSQL数据库可能更适合Java。它是用Java本身编写的,可以在JVM中运行,支持内存中的表等,所有这些功能使其非常适用于原型设计和单元测试。
回答
有一个新项目SQLJet,它是SQLite的纯Java实现。它尚不支持所有SQLite功能,但是对于某些与SQLite数据库一起使用的Java项目而言,它可能是一个很好的选择。