Перейти к содержимому

Minecraft SQLite JDBC

Актуальный драйвер SQLite JDBC, обёрнутый как универсальная библиотека Forge/Fabric/Bukkit для таких плагинов, как Dynmap и Grim.

FabricNeoForgeForgeQuilt
Загрузчики
FabricNeoForgeForgeQuilt
Скачиваний на Modrinth
26,1 тыс.
Подписчиков на Modrinth
17
версий
18
Обновлён
16 октября 202616 окт.
Опубликован
в 2025
Это библиотека — она нужна другим модам и сама ничего не добавляет в игруНужна 2 модам. Скачайте её, если этого требует другой мод.

Коротко о моде

Библиотека — нужна другим модам: её требуют 2
Работает на Fabric, NeoForge, Forge и Quilt
Для Minecraft 1.12.2–26.3
Работает и в игре, и на сервере — ставьте, где нужен
Последняя версия — 3.53.4.0+2026-08-27 от 16 октября 2026
Лицензия Apache-2.0 — бесплатно
Где нужен
В игренеобязателенНа серверенеобязателен

Работает и в игре, и на сервере — ставьте, где нужен

Версии игры1.12.2–26.3
Описание переведено автоматическиПоказать оригинал (EN)

SQLite JDBC для Minecraft

Поддерживаемый форк заглохшего мода SQLite JDBC для Minecraft, теперь отслеживает последний релиз Xerial sqlite-jdbc с автообновлением, когда upstream выпускает новую версию.

Сам по себе мод ничего не делает — он кладёт драйвер SQLite JDBC в classpath сервера, чтобы другим плагинам/модам, которые хотят читать или писать файлы .db/.sqlite через JDBC, не приходилось тащить свою копию.

Типичные потребители: Dynmap, Plan, LuckPerms, Grim Anti-Cheat и любой плагин, которому нужен встроенный SQLite без распространения 10 МБ нативных бинарников.

Что внутри jar

org.xerial:sqlite-jdbc:3.53.0.0 плюс минимальные заглушки-загрузчики для Spigot, Forge 1.12, Forge 1.13–1.16, Forge 1.17–1.20, NeoForge 1.21+ и Fabric. Классы драйвера остаются по своим каноническим путям org.sqlite.* — без перемещения — так что потребители находят их обычным Class.forName("org.sqlite.JDBC"). META-INF/services/java.sql.Driver сохранён, чтобы драйвер автоматически регистрировался в DriverManager.

Драйвер xerial включает нативные бинарники SQLite для всех распространённых платформ/архитектур (linux x64/aarch64, macos x64/arm64, windows x64). Они распаковываются во временную папку JVM при первом использовании.

Совместимость

ЗагрузчикВерсии MCПримечания
Bukkit / Spigot / Paper / Folia / Purpur1.8 → текущаякинуть в plugins/
Fabric1.16.1 → текущаянужен Fabric Loader 0.14+
Forge1.12 → 1.20универсальный jar, без Mixins
NeoForge1.21 → текущаякинуть в mods/

Требуется Java 8+. Чистые серверы на BukkitAPI без Java 8 (всё старше ~1.8.8) не смогут загрузить ни один современный релиз xerial; это ограничение upstream, а не этого мода.

Когда этот мод действительно нужен

CraftBukkit/Spigot/Paper поставляют sqlite-jdbc в родительском classloader сервера ещё со времён коммита ebeans эпохи 1.4. Classloader'ы плагинов делегируют сначала родителю, так что для стандартного пути JDBC (Class.forName("org.sqlite.JDBC") / DriverManager.getConnection) всегда побеждает встроенный драйвер, независимо от того, что лежит в plugins/. Проверено эмпирически на Paper 1.12.2 и 1.21.11.

Этот мод нужен, когда:

  • Вы на Fabric или NeoForge — ванильный Minecraft вообще не поставляет JDBC-драйверы
  • Вы на форке Bukkit, из которого вырезан встроенный драйвер (редко, но бывает на минифицированных сборках сервера)
  • Вы хотите более новую версию движка SQLite, чем поставляет ваш сервер — для RETURNING, таблиц STRICT, современного UPSERT на сервере 1.8–1.12 или просто чтобы отслеживать последний релиз Xerial. См. Использование более нового движка через публичный API ниже.

Использование более нового движка через публичный API

Стандартный путь использует встроенный драйвер. Чтобы использовать драйвер этого мода, ваш плагин должен мягко зависеть от этого холдера и вызывать MinecraftSqliteJdbc.connect(url) напрямую:

// в вашем plugin.yml
softdepend: [sqlite-jdbc]
// в коде вашего плагина
Connection c;
try {
    c = MinecraftSqliteJdbc.connect("jdbc:sqlite:foo.db");
} catch (NoClassDefFoundError | ClassNotFoundException notInstalled) {
    // холдер не установлен — откатываемся на встроенный драйвер
    c = DriverManager.getConnection("jdbc:sqlite:foo.db");
}

MinecraftSqliteJdbc оборачивает child-first URLClassLoader, указывающий на URL этого jar, с родителем в виде classloader платформы, так что org.sqlite.* обязан прийти из этого jar (а не из встроенной цепочки). Возвращённый Connection — стандартный java.sql.Connection — держите приведения к интерфейсам java.sql.*; класс реализации org.sqlite.SQLiteConnection живёт в child-first classloader и не приведётся через границу.

Проверено на Paper 1.12.2 (встроенный движок 3.21.0) — та же JVM, та же загрузка:

baseline DriverManager.getConnection → engine 3.21.0
MinecraftSqliteJdbc.connect()        → engine 3.53.0

Поверхность API (всё статическое):

МетодВозвращает
connect(String url)открытый Connection через этот драйвер
connect(String url, Properties props)то же самое, но с props
driver()экземпляр java.sql.Driver
engineVersion()версия движка SQLite (например, "3.53.0")
driverVersion()строка версии драйвера (например, "3.53.0.0")
eagerInit()прогреть загрузчик классов при включении плагина
shutdown()освободить файловые дескрипторы + JNI при выключении плагина

SQLite-бэкенд Grim Anti-Cheat использует этот API автоматически, когда установлен этот холдер и в нём поставляется движок новее встроенного — см. страницу вики Grim про базу данных.

Версии встроенного движка SQLite в распространённых ветках Bukkit

Для справки, если вам интересно, какая версия движка на самом деле поставляется с вашим сервером:

Ветка CraftBukkit / PaperВстроенный движок SQLite
1.8 – 1.103.7.2
1.113.16.1
1.123.21.0.1
1.133.25.2
1.143.28.0
1.153.30.1
1.16 – 1.173.34.0
1.20.63.45.3.0
Paper 1.21.43.47.0.0
Paper 1.21.5 – 1.21.113.49.1.0
master / 26.x3.51.3.0

Этот мод поставляет движок 3.53.0.0 (или какой там последний релиз xerial), но на серверах семейства Bukkit всё это не имеет значения — ваши запросы на самом деле выполняет встроенный движок. Если вам нужен более новый движок для таких возможностей, как RETURNING (3.35+) или таблицы STRICT (3.37+), обновитесь до версии Paper, в которой поставляется достаточно свежий драйвер, или перенесите эту нагрузку на Fabric/NeoForge, где вы можете управлять драйвером.

Использование из плагина или мода

Объявите sqlite-jdbc как compileOnly:

compileOnly("org.xerial:sqlite-jdbc:3.53.0.0")

Проверка при запуске:

try {
    Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException e) {
    getLogger().warning("SQLite backend disabled — install minecraft-sqlite-jdbc");
    return;
}
try (Connection c = DriverManager.getConnection("jdbc:sqlite:" + dataDir.resolve("data.db"))) {
    // ...
}

На Paper 1.17+ загрузчик классов каждого плагина изолирован. Добавьте этот мод в softdepend вашего plugin.yml, чтобы классы драйвера были видны вашему плагину:

softdepend: [minecraft-sqlite-jdbc]

Fabric и NeoForge объединяют все моды в один загрузчик классов, так что там такое объявление не нужно.

Версионирование

Версия jar один в один повторяет релиз sqlite-jdbc от Xerial. 3.53.0.0+2026-04-14 поставляет движок 3.53.0.0; суффикс — это дата сборки. Запланированный GitHub Action ежедневно проверяет Maven Central — когда xerial выпускает новый релиз, здесь открывается PR на автослияние, и релиз на Modrinth выходит автоматически.

Лицензия

Apache 2.0 (Xerial / Taro L. Saito). Перепаковка не вносит функциональных изменений и наследует эту лицензию. Полный текст в LICENSE.


Проблемы, исходники: GitHub.

Частые вопросы

Как установить Minecraft SQLite JDBC?

Установите Fabric под свою версию Minecraft, скачайте Minecraft SQLite JDBC под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Minecraft SQLite JDBC?

У Minecraft SQLite JDBC есть сборки для Minecraft 1.12.2–26.3.

Нужен ли Minecraft SQLite JDBC на сервере?

Работает и в игре, и на сервере — ставьте, где нужен

Лицензия и источник
Apache License 2.0можно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее