first commit

This commit is contained in:
2026-01-15 22:38:46 +03:00
commit a70e9b7a79
58 changed files with 3980 additions and 0 deletions

91
docs/examples.md Normal file
View File

@@ -0,0 +1,91 @@
# Feature Examples
## 1) Auto ID after insert
```java
PlayerModel player = new PlayerModel();
player.setName("Steve");
api.orm().insert(player);
long id = player.getId();
```
## 2) snake_case default
```java
class PlayerStats {
private int totalKills;
}
// table: player_stats, column: total_kills
```
## 3) findOneWhere & deleteWhere
```java
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)
```java
@DbColumn(length = 32, unique = true, nullable = false)
private String username;
```
## 5) findWhere with order/limit/offset
```java
List<PlayerModel> page = api.orm().findWhere(
PlayerModel.class,
"level >= ?",
java.util.Collections.singletonList(10),
"level DESC",
10,
0
);
```
## 6) Query Builder
```java
List<PlayerModel> top = api.orm().query(PlayerModel.class)
.where("level >= ?", 10)
.orderBy("level DESC")
.limit(10)
.list();
```
## 7) Query Builder + Fluent Conditions + Join
```java
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)
```java
@DbJson
private java.util.Map<String, Object> metadata;
// UUID is built-in. Custom type example:
api.orm().registerAdapter(MyType.class, new TypeAdapter<MyType>() { ... });
```