0Pricing
Android Academy · Lektion

Entitäten und DAOs

Definieren Sie Tabellen und Datenzugriffsobjekte.

Entitäten und DAOs ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Room?

Room ist eine Persistenzbibliothek, die eine Abstraktionsschicht über SQLite bereitstellt. Damit können Sie mit Datenbankzeilen als Kotlin-Objekten und zur Compile-Zeit geprüften Abfragen arbeiten.

Die drei Room-Bausteine

  • Entity — eine Tabelle, dargestellt als Data Class.
  • DAO — Data Access Object; definiert Abfragen.
  • Database — verbindet Entities und DAOs (nächste Lektion).

Eine Entity definieren

Annotieren Sie eine Data Class mit @Entity. Jede Eigenschaft wird zu einer Spalte.

import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String,
    val email: String
)

Primärschlüssel

Jede Entity benötigt einen @PrimaryKey. Damit Room IDs automatisch erzeugt, verwenden Sie autoGenerate.

@Entity
data class Note(
    @PrimaryKey(autoGenerate = true)
    val id: Int = 0,
    val text: String
)

Spalten anpassen

Verwenden Sie @ColumnInfo, um eine Spalte umzubenennen oder ihre Type Affinity festzulegen.

import androidx.room.ColumnInfo

@Entity
data class User(
    @PrimaryKey val id: Int,
    @ColumnInfo(name = "full_name")
    val name: String
)

Was ist ein DAO?

Ein DAO ist ein mit @Dao annotiertes Interface. Es deklariert die Methoden, mit denen Ihre App Daten liest und schreibt. Room generiert die Implementierung für Sie.

Einfügen, Aktualisieren, Löschen

Room stellt praktische Annotationen für die grundlegenden Operationen bereit.

@Dao
interface UserDao {
    @Insert
    suspend fun insert(user: User)

    @Update
    suspend fun update(user: User)

    @Delete
    suspend fun delete(user: User)
}

Konfliktstrategien

Beim Einfügen einer bereits vorhandenen Zeile wählen Sie mit onConflict eine Strategie.

@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun upsert(user: User)

Benutzerdefinierte Abfragen mit @Query

Mit der Annotation @Query können Sie SQL schreiben. Room prüft die Abfrage zur Compile-Zeit gegen Ihr Schema.

@Query("SELECT * FROM users WHERE id = :id")
suspend fun getById(id: Int): User?

Warum suspend-Funktionen?

Datenbank-I/O darf nicht im Main Thread ausgeführt werden. Wenn Sie DAO-Methoden mit suspend markieren, kann Room sie beim Aufruf aus einer Coroutine außerhalb des Main Threads ausführen und so UI-Ruckler verhindern.

Sicherheit zur Compile-Zeit

Ein großer Vorteil von Room: Wenn Sie in einer @Query einen Spaltennamen falsch schreiben, schlägt der Build fehl. So erkennen Sie Fehler frühzeitig statt erst zur Laufzeit.

Kurzer Test

Testen Sie Ihr Verständnis von Entities und DAOs.

Zusammenfassung

Sie haben gelernt:

  • @Entity definiert eine Tabelle als Data Class mit einem @PrimaryKey.
  • @Dao deklariert Methoden zum Abfragen, Einfügen, Aktualisieren und Löschen.
  • SQL in @Query wird zur Compile-Zeit geprüft.
  • DAO-Methoden sollten für I/O außerhalb des Main Threads suspend sein.

Häufig gestellte Fragen

Ist die Lektion „Entitäten und DAOs“ kostenlos?

Ja — der vollständige Text von „Entitäten und DAOs“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Entitäten und DAOs“?

Definieren Sie Tabellen und Datenzugriffsobjekte. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Android Academy zu starten?

Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Entitäten und DAOs“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?

Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Entitäten und DAOs
  2. Die Room-Datenbankklasse
  3. Abfragen und Beziehungen
  4. Daten mit Flow beobachten
← Zurück zu Android Academy