
Драйвер JDBC для Java для баз данных SQLite с поддержкой нативных библиотек на основных операционных системах, обеспечивающий стандартное подключение к базе данных без настройки.
SQLite JDBC — это библиотека для доступа к файлам баз данных SQLite и их создания на Java.
Наша библиотека SQLiteJDBC не требует настройки, так как нативные библиотеки для основных ОС, включая Windows, macOS, Linux и т.д., собраны в один JAR-файл (Java Archive).
➡️ Больше примеров использования и настройки доступны в USAGE.md
SQLite JDBC — это библиотека для доступа к базам данных SQLite через JDBC API. Общее использование JDBC описано в JDBC Tutorial или Oracle JDBC Documentation.
sqlite-jdbc-(VERSION).jar затем добавьте этот jar-файл в свой classpath.Предполагается, что 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) содержит три типа нативных библиотек SQLite (sqlite-jdbc.dll, sqlite-jdbc.jnilib, sqlite-jdbc.so), каждая из которых скомпилирована для Windows, macOS и Linux. Соответствующий файл нативной библиотеки автоматически извлекается во временную папку вашей ОС при загрузке драйвера org.sqlite.JDBC.
Начиная с sqlite-jdbc-3.6.19, нативно скомпилированные движки SQLite будут использоваться для следующих операционных систем:
На других ОС, не перечисленных выше, используется чисто Java SQLite. (Относится к версиям до 3.7.15)
Если вы хотите использовать нативную библиотеку для вашей ОС, соберите исходный код с нуля.
Скачайте с Maven Central или со страницы релизов.
<dependencies>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>(version)</version>
</dependency>
</dependencies>
Снимки (snapshots) разрабатываемой версии доступны в репозитории снимков Sonatype.
Версия проекта следует версии библиотеки SQLite, встроенной в jar, с дополнительной цифрой, обозначающей инкремент проекта.
Например, если версия SQLite — 3.39.2, версия проекта будет 3.39.2.x, где x начинается с 0 и увеличивается с каждым релизом, не изменяющим версию SQLite.
Если версия SQLite обновляется до 3.40.0, версия проекта обновляется до 3.40.0.0.
Возможно, вам потребуется добавить трансформер плагина shade для решения проблемы No suitable driver found for jdbc:sqlite:.
<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 | ✔ | ✔ | ✔ |