博主博客
NOTICE: sqlite-jdbc 已经移到 Github:https://github.com/xerial/sqlite-jdbc.
SQLite JDBC 驱动
SQLite JDBC 是由 Taro L. Saito 开发, 用于 Java 访问和创建 SQLite 数据库文件的库。
我们 SQLite JDBC 库已经封装在一个JAR文件, 不需要在主流的操作系统如:Window, Mac OS X, Linux 等进行本地库配置。用法很简单, 下载我们的 sqlite-jdbc 库(JAR 文件), 然后添加到你的 class path中。
与Zentus' SQLite JDBC 有什么不同?
这个的 sqlite-jdbc 基于 Zentus' SQLite JDBC driver 的分支。我们改善了两个方面:
- 通过嵌入每个编译后的SQLite本地库支持主流的操作系统
- 移除手动配置
在最初的版本中, 为了使用原生版本的sqlite-jdbc, 用户必须使用命令配置本地的代码路径(dll, jnilib, 文件等)等参数。例如,-Djava.library.path=(path to the dll, jnilib, etc.), or -Dorg.sqlite.lib.path等。配置这些变量的过程很容易出错和引起用户不必要的麻烦。我们的 SQLite JDBC 库完全抛弃了这些不必要的麻烦。
另外一个不同的地方是我们保留了 SQLite JDBC 库升级到最新版本的 SQLite 引擎。因为我们这个库是最热门的库之一。例如, SQLite JDBC 是 UTGB (University of Tokyo Genome Browser) Toolkit 的一个核心组件, 这个浏览器是使用我们程序来创建个性化的基因组浏览器。
使用方法
SQLite JDBC 是一个通过 JDBC API 访问 SQlite 数据库的库。 自行查阅 JDBC 指引或Oracle JDBC 开发文档。
-
在下载页面(或者使用Maven)中下载 sqlite-jdbc-(VERSION).jar 然后添加这个 jar 到 classpath中。
-
在你的代码中使用 org.sqlite.JDBC 打开驱动. (看下面的例子)
-
更多的示例
-
示例的使用方法(假设 sqlite-jdbc-(VERSION).jar 已经放进当前文件夹)
> javac Sample.java
> java -classpath ".;sqlite-jdbc-(VERSION).jar" Sample # in Windows
or
> java -classpath ".:sqlite-jdbc-(VERSION).jar" Sample # in Mac or Linux
name = leo
id = 1
name = yui
id = 2
Sample.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Sample {
public static void main(String[] args) {
Connection connection = null;
try {
// 创建一个数据库连接
connection = DriverManager.getConnection("jdbc:sqlite:sample.db");
Statement statement = connection.createStatement();
// 设置 30 秒超时
statement.setQueryTimeout(30);
statement.executeUpdate("drop table if exists person");
statement.executeUpdate("create table person (id integer, name string)");
statement.executeUpdate("insert into person values(1, 'leo')");
statement.executeUpdate("insert into person values(2, 'yui')");
ResultSet rs = statement.executeQuery("select * from person");
while(rs.next()) {
// 读取结果集
System.out.println("name = " + rs.getString("name"));
System.out.println("id = " + rs.getInt("id"));
}
} catch(SQLException e) {
// 如果错误信息是 "out of memory",
// 大概是找不到数据库文件
System.err.println(e.getMessage());
} finally {
try {
if(connection != null)
connection.close();
} catch(SQLException e) {
// 连接关闭失败
System.err.println(e);
}
}
}
}
如何指定数据库文件
这个例子是选择 Windows 下的 C:\work\mydatabase.db
Connection connection = DriverManager.getConnection("jdbc:sqlite:C:/work/mydatabase.db");
选择 UNIX(Linux, Mac OS X 等) 下的 /home/leo/work/mydatabase.db
Connection connection = DriverManager.getConnection("jdbc:sqlite:/home/leo/work/mydatabase.db");
怎样使用内存数据库
SQlite 支持内存数据库管理, 不需要创建任何的数据库文件。在你的Java代码中使用内存数据库可以下面的链接:
Connection connection = DriverManager.getConnection("jdbc:sqlite::memory:");
参考文献
https://bitbucket.org/xerial/sqlite-jdbc
https://github.com/xerial/sqlite-jdbc