
SQLite JDBC は、Java で SQLite データベースファイルへのアクセスおよび作成を行うためのライブラリです。
SQLiteJDBC ライブラリは、Windows、macOS、Linux などの主要 OS 向けのネイティブライブラリが単一の JAR(Java Archive)ファイルにまとめられているため、設定は一切不要です。
➡️ より多くの使用例と設定については、USAGE.md を参照してください。
SQLite JDBC は、JDBC API を通じて SQLite データベースにアクセスするためのライブラリです。JDBC の一般的な使用方法については、JDBC チュートリアル または Oracle JDBC ドキュメント を参照してください。
sqlite-jdbc-(VERSION).jar を ダウンロード し、
この jar ファイルをクラスパスに追加します。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 macOS 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
{
// create a database connection
connection = DriverManager.getConnection("jdbc:sqlite:sample.db");
Statement statement = connection.createStatement();
statement.setQueryTimeout(30); // set timeout to 30 sec.
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())
{
// read the result set
System.out.println("name = " + rs.getString("name"));
System.out.println("id = " + rs.getInt("id"));
}
}
catch(SQLException e)
{
// if the error message is "out of memory",
// it probably means no database file is found
System.err.println(e.getMessage());
}
finally
{
try
{
if(connection != null)
connection.close();
}
catch(SQLException e)
{
// connection close failed.
System.err.println(e.getMessage());
}
}
}
}
SQLite JDBC ドライバパッケージ(すなわち sqlite-jdbc-(VERSION).jar)には、3 種類のネイティブ SQLite ライブラリ(sqlite-jdbc.dll、sqlite-jdbc.jnilib、sqlite-jdbc.so)が含まれており、それぞれ Windows、macOS、Linux 向けにコンパイルされています。プログラムが org.sqlite.JDBC ドライバを読み込むと、適切なネイティブライブラリファイルが自動的に OS の一時フォルダに展開されます。
sqlite-jdbc-3.6.19 以降、以下のオペレーティングシステムでは、ネイティブコンパイルされた SQLite エンジンが使用されます:
上記に記載されていないその他の OS では、純粋な Java の SQLite が使用されます。(3.7.15 より前のバージョンに適用されます)
お使いの OS 用のネイティブライブラリを使用したい場合は、ソースからビルド してください。
Maven Central または リリース ページからダウンロードしてください。
<dependencies>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>(version)</version>
</dependency>
</dependencies>
開発バージョンのスナップショットは、Sonatype のスナップショットリポジトリ で入手できます。
プロジェクトのバージョンは、jar にバンドルされている SQLite ライブラリのバージョンに追従し、プロジェクトの増分を示す追加の桁が付きます。
例えば、SQLite のバージョンが 3.39.2 の場合、プロジェクトのバージョンは 3.39.2.x となり、x は 0 から始まり、SQLite のバージョンを変更しないリリースごとに増加します。
SQLite のバージョンが 3.40.0 に更新された場合、プロジェクトのバージョンは 3.40.0.0 に更新されます。
No suitable driver found for jdbc:sqlite: という問題を解決するには、shade プラグインのトランスフォーマーを追加する必要がある場合があります。
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/services/java.sql.Driver</resource>
</transformer>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>(version)</version>
</dependency>
常に以下の方を募集しています:
貢献ガイド をお読みください。
| x86 | x86_64 | armv5 | armv6 | armv7 | arm64 | ppc64 |
|---|
| Windows | ✔ | ✔ | ✔ | ✔ | |||
| macOS | ✔ | ✔ | |||||
| Linux (libc) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Linux (musl) | ✔ | ✔ | ✔ | ||||
| Android | ✔ | ✔ | ✔ | ✔ | |||
| FreeBSD | ✔ | ✔ | ✔ |