Files
Database/docs/examples.md
2026-01-15 22:38:46 +03:00

1.8 KiB

Feature Examples

1) Auto ID after insert

PlayerModel player = new PlayerModel();
player.setName("Steve");
api.orm().insert(player);
long id = player.getId();

2) snake_case default

class PlayerStats {
    private int totalKills;
}
// table: player_stats, column: total_kills

3) findOneWhere & deleteWhere

PlayerModel one = api.orm().findOneWhere(
    PlayerModel.class,
    "level >= ?",
    java.util.Collections.singletonList(10)
);

int deleted = api.orm().deleteWhere(
    PlayerModel.class,
    "level < ?",
    java.util.Collections.singletonList(1)
);

4) @DbColumn(length/unique/nullable)

@DbColumn(length = 32, unique = true, nullable = false)
private String username;

5) findWhere with order/limit/offset

List<PlayerModel> page = api.orm().findWhere(
    PlayerModel.class,
    "level >= ?",
    java.util.Collections.singletonList(10),
    "level DESC",
    10,
    0
);

6) Query Builder

List<PlayerModel> top = api.orm().query(PlayerModel.class)
    .where("level >= ?", 10)
    .orderBy("level DESC")
    .limit(10)
    .list();

7) Query Builder + Fluent Conditions + Join

import static com.andrewkydev.database.orm.Conditions.*;

List<PlayerModel> rows = api.orm().query(PlayerModel.class)
    .select("players.*")
    .join("LEFT JOIN clans ON clans.id = players.clan_id")
    .where(eq("players.status", "ACTIVE").and(gt("players.level", 10)))
    .groupBy("players.id")
    .having("COUNT(clans.id) > ?", 0)
    .orderBy("players.level DESC")
    .limit(10, 0)
    .list();

8) Custom types (UUID/JSON)

@DbJson
private java.util.Map<String, Object> metadata;

// UUID is built-in. Custom type example:
api.orm().registerAdapter(MyType.class, new TypeAdapter<MyType>() { ... });