You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 9, 2025. It is now read-only.
Doma is a database access framework for Java that provides compile-time code generation, type-safe query building, and SQL template support. It offers a unique approach to database programming with annotation processing for compile-time validation and zero runtime dependencies.
3
+
> Doma is a database access framework for Java that provides compile-time code generation, type-safe query building, and SQL template support. It offers a unique approach to database programming with annotation processing for compile-time validation and zero runtime dependencies.
4
4
5
-
## Key Features
5
+
**Key Features**
6
6
7
7
- **Compile-time Code Generation**: Uses annotation processing to generate DAO implementations and validate SQL queries at compile time
8
8
- **Type-safe Criteria API**: Build queries programmatically with full type safety and IDE support
@@ -12,68 +12,73 @@ Doma is a database access framework for Java that provides compile-time code gen
12
12
- **Multi-language Support**: First-class support for Java and Kotlin
13
13
- **Framework Integration**: Seamless integration with Spring Boot, Quarkus, and other frameworks
14
14
15
-
## Architecture
15
+
**Architecture**
16
16
17
17
Doma follows a code-first approach where:
18
18
1. You define entities using annotations
19
19
2. Annotation processors generate DAO implementations at compile time
20
20
3. SQL queries are validated against entity definitions
- [Release Notes](https://github.com/domaframework/doma/releases): Doma Release Notes
34
+
- [JavaDoc API Reference](https://www.javadoc.io/doc/org.seasar.doma/doma-core/latest/index): Javadoc for Doma's API functions.
69
35
70
-
## Resources
36
+
## Get Started
37
+
38
+
- [Getting Started Guide](https://doma.readthedocs.io/en/stable/getting-started): Getting Started Guide for Doma
39
+
40
+
## Documents
41
+
42
+
- [Configuration](https://doma.readthedocs.io/en/stable/config): Configuration settings for accessing the database with Doma
43
+
- [Basic Classes](https://doma.readthedocs.io/en/stable/basic): Java types that can be directly mapped to database columns in Doma
44
+
- [Domain Types](https://doma.readthedocs.io/en/stable/domain): Domain classes allow you to treat database column values as user-defined Java objects for enhanced type safety.
45
+
- [Embeddable Objects](https://doma.readthedocs.io/en/stable/embeddable): Embeddable classes, marked with `@Embeddable`, group reusable property sets for entity classes.
46
+
- [Entity Mapping](https://doma.readthedocs.io/en/stable/entity): Entity classes represent tables or query result sets via the `@Entity` annotation. They support inheritance, custom naming `(NamingType)`, immutability `(immutable=true)`, and table mapping (`@Table`).
47
+
- [Query Operations](https://doma.readthedocs.io/en/stable/query/): Overview of how to perform SQL operations using Doma’s query annotations and methods.
48
+
- [Select Queries](https://doma.readthedocs.io/en/stable/query/select): Explains how to retrieve data from the database using `@Select`.
49
+
- [Insert Operations](https://doma.readthedocs.io/en/stable/query/insert): Describes how to add new records to the database with `@Insert`.
50
+
- [Update Operations](https://doma.readthedocs.io/en/stable/query/update): Shows how to update existing records using `@Update`.
51
+
- [Delete Operations](https://doma.readthedocs.io/en/stable/query/delete): Demonstrates how to delete records from the database with `@Delete`.
52
+
- [Batch Insert](https://doma.readthedocs.io/en/stable/query/batch-insert): Details how to insert multiple records at once with `@BatchInsert`.
53
+
- [Batch Update](https://doma.readthedocs.io/en/stable/query/batch-update): Describes how to update multiple records in a single batch using `@BatchUpdate`.
54
+
- [Batch Delete](https://doma.readthedocs.io/en/stable/query/batch-delete): Explains how to delete multiple records in batch via `@BatchDelete`.
55
+
- [Multi-row Insert](https://doma.readthedocs.io/en/stable/query/multi-row-insert): Shows how to insert multiple rows using a single SQL statement.
56
+
- [Stored Procedures](https://doma.readthedocs.io/en/stable/query/procedure): Explains how to call stored procedures and functions with `@Procedure`.
57
+
- [Functions](https://doma.readthedocs.io/en/stable/query/function): Guides on invoking database functions through Doma.
58
+
- [Script Execution](https://doma.readthedocs.io/en/stable/query/script): Describes how to execute SQL script files using `@Script`.
59
+
- [Query Factory](https://doma.readthedocs.io/en/stable/query/factory): Explains how to dynamically build and execute queries using QueryFactory.
60
+
- [SQL Processor](https://doma.readthedocs.io/en/stable/query/sql-processor): Provides advanced SQL execution via the `@SqlProcessor` interface.
61
+
- [Query Builder](https://doma.readthedocs.io/en/stable/query-builder/): Demonstrates how to construct SQL queries programmatically in Java.
62
+
- [Type-safe Criteria API](https://doma.readthedocs.io/en/stable/query-dsl): Shows how to write type-safe, dynamic queries using Criteria API.
63
+
- [SQL Templates (Two-way SQL)](https://doma.readthedocs.io/en/stable/sql): Explains how to use external SQL files with embedded conditions and bindings.
64
+
- [Lombok Support](https://doma.readthedocs.io/en/stable/lombok-support): Describes how Doma integrates with Lombok to reduce boilerplate code.
65
+
- [Kotlin Support](https://doma.readthedocs.io/en/stable/kotlin-support): Explains Doma’s compatibility and usage with the Kotlin programming language.
66
+
- [SLF4J Integration](https://doma.readthedocs.io/en/stable/slf4j-support): Describes how Doma logs SQL and messages via the SLF4J logging framework.
67
+
- [Java Module System Support](https://doma.readthedocs.io/en/stable/jpms-support): Details how Doma supports Java Platform Module System (JPMS).
68
+
- [Spring Boot Integration](https://doma.readthedocs.io/en/stable/spring-boot-support): Explains how to integrate Doma with Spring Boot applications.
69
+
- [Data Access Objects (DAO)](https://doma.readthedocs.io/en/stable/dao): Introduces how to define and use DAO interfaces with annotations in Doma.
70
+
- [Aggregate Strategy](https://doma.readthedocs.io/en/stable/aggregate-strategy): Explains strategies for managing aggregate entities and associations.
71
+
- [Expression Language](https://doma.readthedocs.io/en/stable/expression): Shows how to use Doma’s expression language in SQL templates.
72
+
- [Transaction Management](https://doma.readthedocs.io/en/stable/transaction): Covers how to manage database transactions using Doma’s APIs.
73
+
- [Build Configuration](https://doma.readthedocs.io/en/stable/build): Provides guidance on setting up Doma in Maven or Gradle projects.
0 commit comments