Last updated
Last updated
Room - ΠΎΠ±Π΅ΡΡΠΊΠ° Π½Π°Π΄ SQLIte/Realm/DAO, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π½Π° Goolge I/O. Room provides an abstraction layer over SQLite in a similar way to Retrofit with network requests. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: androidx.room.
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ°Π·Ρ Π² Π±Π°Π·Ρ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. ΠΡΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΎΡΠΈΠ±ΠΈΡΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (ΠΏΡΠΎ sqli) ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ:
ΠΠ²Π΅ Π½ΠΎΡΠΌ ΡΡΠ°ΡΡΠΈ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Room:
ΠΠΎΡΡΠ°ΠΏΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅
Π build.gradle ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ google()
Π build.gradle ΡΠ°ΠΉΠ»Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ dependencies:
Π’ΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° - Entity
, Dao
, Database
Entity
- ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ
ΠΎΡΠΈΠΌ Ρ
ΡΠ°Π½ΠΈΡΡ Π² Π±Π°Π·Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ. Database
- Dao
- ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΈΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ:
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»Ρ:
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Room
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΏΠΎΠ»Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠΎ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎΠ»Ρ Π² Entity
ΠΊΠ»Π°ΡΡΠ΅. ΠΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΈΠΏ.
Π£ PrimaryKey
Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ autoGenerate
. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ»Ρ ΡΠ΅ΠΆΠΈΠΌ autoincrement
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
ΡΠ°ΠΌΠ° Π±ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Π΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ primaryKeys.
ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ»ΡΡ (ForeignKeys
) ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Π½ΠΈΠΌΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎ Π½ΠΈΡ
Π² ΠΈΠ½Π΅ΡΠ΅. Π Π²ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ Employee
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ»Π°ΡΡ Car
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ ΠΌΠ°ΡΠΈΠ½Π°ΠΌ. Π ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½Π° ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΡ.
ΠΠ°ΠΆΠ½ΠΎ: When we use foreign key dont forget to put onDelete = ForeignKey.CASCADE
this way if you delete an data it will also delete de dependency. This way you won't have false data or data that are never use
ΠΠ½Π΄Π΅ΠΊΡ (Index) ΠΠ½Π΄Π΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Π½ΠΈΠΌΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎ Π½ΠΈΡ
Π² ΠΈΠ½Π΅ΡΠ΅. Π Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Entity
Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ indicies
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π²Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°: ΠΎΠ΄ΠΈΠ½ ΠΏΠΎ ΠΏΠΎΠ»Ρ salary
, Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΠΎΠ»ΡΠΌ first_name
ΠΈ last_name
.
ΠΠ½Π΄Π΅ΠΊΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ index
Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ColumnInfo
ΠΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄Π»Ρ ΠΏΠΎΠ»Π΅ salary
.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΡΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ Address
, Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ Π°Π΄ΡΠ΅ΡΠ΅. ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, Π½Π΅ Entity
.
Π ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Entity ΠΊΠ»Π°ΡΡΠ΅ Employee
ΠΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Embedded. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΈ Π² Embedded ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡ Π΄Π»Ρ Embedded ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠΎΠ»Π΅ΠΉ Embedded ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΡΠ΅ΡΠΈΠΊΡ.
Ignore ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ Ignore ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°ΡΡ Room, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π±Π°Π·Ρ ΠΈΠ»ΠΈ ΡΠΈΡΠ°ΡΡΡΡ ΠΈΠ· Π½Π΅Π΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ employee
. ΠΠ°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π²Π½ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Entity
ΠΊΠ»Π°ΡΡΠ°, Ρ.Π΅. Employee
, Π½ΠΎ Π² SQLite
Π½Π΅ Π²Π°ΠΆΠ΅Π½ ΡΠ΅Π³ΠΈΡΡΡ Π² ΠΈΠΌΠ΅Π½Π°Ρ
ΡΠ°Π±Π»ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ employee
. ΠΠ»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ/ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ insert/update/delete
Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ. Π’ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΠ±ΡΠΌΠΈ. ΠΠ»Π°Π²Π½ΠΎΠ΅ - Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ.
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ Database
ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ RoomDatabase
.
Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Database
ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Entity
Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΠΈ Π²Π΅ΡΡΠΈΡ Π±Π°Π·Ρ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Entity
ΠΊΠ»Π°ΡΡΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° entities
Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°.
Π Database
ΠΊΠ»Π°ΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Dao
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ.
Database
ΠΎΠ±ΡΠ΅ΠΊΡ - ΡΡΠΎ ΡΡΠ°ΡΡΠΎΠ²Π°Ρ ΡΠΎΡΠΊΠ°. ΠΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Application Context
, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ AppDatabase
ΠΊΠ»Π°ΡΡ ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ Π±Π°Π·Ρ.
Π£ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Room
ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ AppDatabase
. ΠΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΠΆΠ΅Π»ΡΠ΅ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π²Π°ΡΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΡΠΈΠ½Π³Π»ΡΠΎΠ½Π΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Dagger
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Dagger
(ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ DI ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ), ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Application
ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ AppDatabase
:
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ App
ΠΊΠ»Π°ΡΡ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ
Π ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π°Π·Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ· Database ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Dao.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Employee
ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠΎ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ Π² UI
ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠ½Π°ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Exception
.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Π² Π±Π°Π·Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ΅ΡΠΎΠ΄ getAll Π²Π΅ΡΠ½Π΅Ρ Π½Π°ΠΌ Π²ΡΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π² List
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° ΠΏΠΎ id:
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
- ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅, ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ Π² UI
ΠΏΠΎΡΠΎΠΊΠ΅.
Π ΡΠ»ΡΡΠ°Π΅ Ρ Query
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡ
Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ LiveData
ΠΈΠ»ΠΈ RxJava
.