Package group.worldstandard.pudel.api.database


package group.worldstandard.pudel.api.database
Plugin data persistence and database management API.

This package provides a JPA-like repository pattern for plugin data persistence. Each plugin gets its own isolated database schema, ensuring data separation between plugins. Raw SQL is not allowed - all interactions go through the repository pattern.

Key Components:

Basic Usage:

@Entity
public class UserSetting {
    private Long id;
    private Long userId;
    private String key;
    private String value;
    // getters and setters...
}

// In your plugin:
PluginDatabaseManager db = context.getDatabaseManager();

// Create table
TableSchema schema = TableSchema.builder("user_settings")
    .column("user_id", ColumnType.BIGINT, false)
    .column("key", ColumnType.STRING, 100, false)
    .column("value", ColumnType.TEXT, true)
    .build();
db.createTable(schema);

// Get repository
PluginRepository<UserSetting> repo = db.getRepository("user_settings", UserSetting.class);

// CRUD operations
UserSetting setting = new UserSetting();
setting.setUserId(12345L);
setting.setKey("theme");
setting.setValue("dark");
repo.save(setting);

Optional<UserSetting> found = repo.findById(setting.getId());

Key-Value Store:

PluginKeyValueStore kv = db.getKeyValueStore();
kv.set("config.enabled", true);
boolean enabled = kv.getBoolean("config.enabled", false);
Since:
2.3.0