Encje, DAO i baza danych
Zdefiniuj lokalny schemat za pomocą Room
Encje, DAO i baza danych to bezpłatna lekcja Jetpack Compose Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Jetpack Compose Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Room Is Your Local SQLite
Room is a friendly layer over SQLite. It lets you save data on the device with plain Kotlin classes instead of raw SQL strings. 💾
Three Core Pieces
Room has exactly three building blocks: an Entity for the table, a DAO for the queries, and a Database that ties them together.
An Entity Is a Table
Annotate a data class with @Entity and Room turns it into a database table, one column per property.
@Entity
data class Note(val text: String)Every Row Needs a Key
Mark one field as the @PrimaryKey so each row is uniquely identified. Use autoGenerate to let Room assign ids for you.
@PrimaryKey(autoGenerate = true)
val id: Int = 0The DAO Holds Your Queries
A @Dao interface declares the operations you want. You write the intent, and Room generates the implementation.
@Dao
interface NoteDao {
// queries go here
}Insert With One Annotation
Add a function and tag it with @Insert. Room writes the SQL that saves your entity to the table.
@Insert
suspend fun insert(note: Note)Read With @Query
Use @Query with real SQL to fetch rows. Room checks the query against your schema at compile time.
@Query("SELECT * FROM Note")
suspend fun getAll(): List<Note>Update and Delete Too
The same pattern covers writes: @Update and @Delete change existing rows by matching their primary key.
@Delete
suspend fun delete(note: Note)The Database Class
Declare an abstract class with @Database, list your entities, and expose each DAO. This is the single entry point.
@Database(entities = [Note::class], version = 1)
abstract class AppDb : RoomDatabase() {
abstract fun noteDao(): NoteDao
}Build the Database Once
Create the instance with Room.databaseBuilder. Building it is expensive, so do it a single time and reuse it.
Room.databaseBuilder(context, AppDb::class.java, "app.db").build()Suspend Keeps the UI Smooth
Disk access is slow, so mark DAO functions suspend. Room then runs them off the main thread and never freezes your screen.
Quick Check
Which annotation marks a Kotlin class as a Room database table?
Recap: The Three Pillars
You defined an Entity table, a DAO of suspend queries, and a Database that wires them up. Next you will make those reads reactive.
Często zadawane pytania
Czy lekcja „Encje, DAO i baza danych” jest bezpłatna?
Tak — pełny tekst „Encje, DAO i baza danych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Jetpack Compose Academy, przejdź na CoddyKit PRO. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Encje, DAO i baza danych”?
Zdefiniuj lokalny schemat za pomocą Room Ćwiczysz Jetpack Compose Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Jetpack Compose Academy?
Nie wymagamy żadnego doświadczenia. Jetpack Compose Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Encje, DAO i baza danych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Jetpack Compose Academy?
Tak. Każda lekcja Jetpack Compose Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Encje, DAO i baza danych
- Reaktywne zapytania zwracające Flow
- Wzorzec repozytorium
- Strategia buforowania offline-first