Room skapar en tabell för varje klass som annoterats med @Entity; fälten i klassen motsvarar kolumner i tabellen. Därför tenderar entitetsklasserna att vara små modellklasser som inte innehåller någon logik. Vår Person-klass representerar modellen för data i databasen. Så låt oss uppdatera den så att den talar om för Room att den ska skapa en tabell baserad på den här klassen:
Anteckna klassen med @Entity och använd egenskapen tableName för att ställa in namnet på tabellen.
Sätt primärnyckeln genom att lägga till @PrimaryKey-annotationen till de rätta fälten – i vårt fall är det användarens ID.
Ställ in namnet på kolumnerna för klassens fält med hjälp av @ColumnInfo(name = "column_name")-annotationen. Hoppa gärna över det här steget om dina fält redan har rätt kolumnnamn.
Om flera konstruktörer är lämpliga lägger du till @Ignore-annotationen för att tala om för Room vilka som ska användas och vilka som inte ska användas.
Steg 3: Skapa dataåtkomstobjekt (DAO:s)
DaO:s ansvarar för att definiera metoderna som ger tillgång till databasen.
För att skapa ett DAO måste vi skapa ett gränssnitt och annoterat med @Dao .
Steg 4 – Skapa databasen
För att skapa en databas måste vi definiera en abstrakt klass som utökar RoomDatabase. Denna klass är annoterad med @Database, listar de enheter som finns i databasen och de DAO:er som har tillgång till dem.
Steg 4: Hantera data
För att kunna hantera data måste vi först av allt skapa en instans av databasen.
Därefter kan vi infoga radera och uppdatera databasen.
Säkerställ att alla operationer ska utföras på en annan tråd. I mitt fall använder jag Executers (se här)
Query:
Insert:
Släpp:
Uppdatera:
Exekvering med Executer
Jag har också länkat en repo om du vill se ett exempel på Room Database.