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:
@Entitydefiniert eine Tabelle als Data Class mit einem@PrimaryKey.@Daodeklariert Methoden zum Abfragen, Einfügen, Aktualisieren und Löschen.- SQL in
@Querywird zur Compile-Zeit geprüft. - DAO-Methoden sollten für I/O außerhalb des Main Threads
suspendsein.
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.