Quindi, come abbiamo pianificato in precedenza, inizieremo con la sezione dell'origine dati locale, che è il database della stanza.
Poi ci sposteremo nel repository per completare la sezione del modello.
Poi passeremo a creare il livello del modello di vista e successivamente il livello di vista.
All'interno del database della stanza dobbiamo iniziare con l'entità Dio.
E poi con il database SQLite.
Voglio che vi concentriate su di me e mi seguiate passo dopo passo per implementare
il database delle stanze e l'architettura MVVM in qualsiasi applicazione che dobbiate creare in futuro.
Cominciamo con l'entità.
Una classe entità definisce una tabella e ogni istanza di questa classe rappresenta una riga nella tabella del database.
La classe entità ha delle mappature che indicano a una stanza
come intende presentare e interagire con le informazioni del database.
Immaginiamo di avere una tabella contenente quattro colonne: nome ID, prezzo e quantità.
Questi sono i campi dell'entità o le colonne.
Il nome della tabella è item.
Per rappresentarlo in Android Studio, è necessario creare una classe con un nome di elemento.
Quindi il nome della classe sarebbe l'elemento che rappresenta il nome della classe dell'entità.
E non mancate di annotarlo con l'annotazione Aggiungi entità.
Non preoccupatevi, lo vedremo nei prossimi minuti.
Per chiarire, dobbiamo creare una tabella con un nome di classe chiamato item.
Poi dobbiamo creare quattro campi e quattro variabili all'interno di questa classe: nome ID, prezzo e quantità.
Ogni variabile rappresenta un'entità, un campo o una colonna.
Quindi è necessario inserire le righe o i record.
Questi record sono istanze della classe entità.
Quindi, ogni volta che dobbiamo inserire un nuovo record nella tabella del
database, dobbiamo creare un'istanza di questa classe di entità denominata item.
Passiamo ad Android Studio e vediamo come creare la classe entità.
All'interno di esso, dobbiamo creare un nuovo pacchetto chiamato DB della stanza.
E all'interno di questo pacchetto creeremo una nuova classe Kotlin Data.
Selezionare la classe Data e denominarla nodo.
Questo nodo fungerà da modello per ogni nodo inserito nel nostro database.
A tal fine, è necessario annotarlo con un'entità.
Per dire ad Android Studio che questa classe agirà come entità nel database della nostra stanza,
dobbiamo annotarla con l'annotazione add entity e al suo interno dobbiamo specificare il nome della tabella.
Ecco il nome della tabella.
La chiamo tabella delle note.
È molto semplice.
Qui stiamo dicendo ad Android Studio che il nodo agirà come un'entità, e un'entità è
una tabella in una stanza e il nome della tabella sarà come tabella dei nodi.
Se non lo si specifica, se si scrive semplicemente entità Android Studio creerà una tabella con
il nome del nodo come nome della classe, ma preferisco essere specifico e dire ad Android
Studio che il nome di questa tabella sarà come tabella dei nodi all'interno del nodo.
Qui occorre specificare i campi.
I campi sono i campi entità che rappresentano le colonne della nostra tabella.
Per prima cosa dobbiamo creare una variabile di tipo integer denominata id e inizializzata con zero val.
Titolo n.
Titolo titolo di tipo stringa val.
Descrizione.
È di tipo stringa e val color.
È di tipo int.
Abbiamo quindi creato questa classe annotata con entity, indicando ad Android Studio di creare una
tabella di nodi denominata nodes table con quattro colonne ID, titolo, descrizione e colore.
A proposito, il colore è memorizzato come un intero argb.
Qui non posso usare il colore del gradiente dell'interfaccia utente di Android x, perché la stanza
non supporta direttamente tipi complessi come il colore, quindi useremo un intero al posto del colore.
Un'ultima cosa.
Dobbiamo menzionarlo.
Qui possiamo aggiungere l'annotazione di chiave primaria.
È quindi necessario specificare una chiave primaria per la tabella note, in modo che
sia una chiave unica e non si ripeta mai con autogenerazione uguale a true.
Quindi, ogni volta che si crea un nuovo record della nota, ogni volta
che si crea una nuova istanza della nota, l'ID verrà incrementato di uno.
Si tratta quindi di una generazione automatica e non la specificheremo.
Android studio e il database della stanza generano automaticamente questo
ID ogni volta che si crea una nuova nota.
Inoltre, possiamo creare una colonna info con nome uguale, ad esempio, al titolo della nota.
Se non si scrive alcuna annotazione relativa alle informazioni sulla colonna, il database delle stanze creerà una
colonna con il nome della variabile come campo, ma se si specificano le informazioni sulla colonna
il database delle stanze creerà un titolo di nodo che si riferisce a questa variabile titolo.
Così otterremo un nodo id titolo, descrizione e colore e non titolo.
Non avrà alcun titolo.
Ok, se si specificano le informazioni sulla colonna, ma per semplicità preferisco creare variabili simili
ai nomi delle colonne, come nel caso del sommario, abbiamo creato un nome di
tabella chiamato tabella nodi, il nome della classe dell'entità e abbiamo creato quattro variabili.
Queste variabili.
I campi entità rappresentano le colonne id, titolo, descrizione e colore.
Ecco come creare tabelle nel database della stanza, utilizzando
l'annotazione entity e la classe data in Kotlin.