Библиотека для работы с базами данных с использованием ORM JOOQ для Java.
JOOQConnector — это библиотека для Java, предназначенная для удобной работы с базами данных через ORM JOOQ. Она поддерживает SQLite и MySQL, а также рассчитана для работы с различными серверными ядрами, таких как Bukkit, Nukkit, PowerNukkitX, JukeboxMC и WaterdogPE.
- Поддержка SQLite3 и MySQL: Бесшовная интеграция с базами данных SQLite и MySQL.
- Отключение логов: Возможность отключить вывод логотипа и подсказок JOOQ в логах.
- Встроенные драйверы: Включает драйверы SQLite и MySQL в JAR-файл.
- Кроссплатформенная поддержка: Совместимость с различными программными серверами Minecraft.
Вы можете отключить вывод логотипа и подсказок JOOQ:
JOOQConnector.setJOOQMessagesEnabled(false);
Table<?> table = DSL.table("test");
SQLiteDatabase database = new SQLiteDatabase(new File("database.db"));
// Создание таблицы
database.getConnection().thenAcceptAsync(connection -> {
DSL.using(connection)
.createTableIfNotExists(table)
.column("id", SQLDataType.INTEGER)
.column("data", SQLDataType.VARCHAR)
.unique("id")
.execute();
}).join();
// Вставка значения
database.getConnection().thenAcceptAsync(connection -> {
DSL.using(connection).insertInto(table)
.set(DSL.field("id"), 1)
.set(DSL.field("data"), "Test string")
.execute();
}).join();
// Получение значения
String value = database.getConnection().thenApplyAsync(connection -> {
Result<Record> result = DSL.using(connection).select()
.from(table)
.where(DSL.field("id").eq(1))
.fetch();
return result.isEmpty() ? null : result.get(0).get(DSL.field("data", String.class));
}).join();
System.out.println("Value from table: " + value);
MySQLDatabase database = new MySQLDatabase("127.0.0.1:3306", "database", "user", "password");
// Остальной код идентичен примеру с SQLite...
IDatabase database = sqlite ?
new SQLiteDatabase(new File("database.db")) :
new MySQLDatabase("127.0.0.1:3306", "database", "user", "password");
public class Database {
private final IDatabase database;
private final Table<?> table;
public Database(IDatabase database, Table<?> table) {
this.database = database;
this.table = table;
database.getConnection().thenAcceptAsync(connection -> {
DSL.using(connection)
.createTableIfNotExists(table)
.column("id", SQLDataType.INTEGER)
.column("data", SQLDataType.VARCHAR)
.unique("id")
.execute();
}).join();
}
public CompletableFuture<Void> addValue(int id, String data) {
return database.getConnection().thenAcceptAsync(connection -> {
DSL.using(connection).insertInto(table)
.set(DSL.field("id"), id)
.set(DSL.field("data"), data)
.execute();
});
}
public CompletableFuture<String> getValue(int id) {
return database.getConnection().thenApplyAsync(connection -> {
Result<Record> result = DSL.using(connection).select()
.from(table)
.where(DSL.field("id").eq(id))
.fetch();
return result.isEmpty() ? null : result.get(0).get(DSL.field("data", String.class));
});
}
}
Если вы не используете версию API для самостоятельного использования, поместите JAR-файл плагина в папку plugins
вашего сервера.
Добавьте следующий репозиторий и зависимость в ваш pom.xml
:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.MEFRREEX</groupId>
<artifactId>JOOQConnector</artifactId>
<version>1.0.1</version>
<scope>provided</scope>
</dependency>
Добавьте следующий репозиторий и зависимость в ваш build.gradle
:
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.MEFRREEX:JOOQConnector:1.0.1'
}