An interface (API) which allows us to interact with our SQLite database tables. This example corresponds to the @Entity and Build A Database entries. Once these have been coded use LiveData to observe the data.
Create a custom class to define your table, using Entity to annotate it
@Dao // Required
public interface ContactDao {
@Query("SELECT * FROM contacts ORDER BY age") // Database query
List<ContactEntry> loadAllContacts(); // When loadAllContacts() is called it will return a List<ContactEntry> containing the results of the query
@Insert
void insertContact(ContactEntry contactEntry); // Inserts a new ContactEntry into the table
@Update(onConflict = OnConflictStrategy.REPLACE) // Set to replace (other options: Abort, Fail, Ignore, Rollback)
void updateContact(ContactEntry contactEntry); // Update an existing Contact entry
@Delete
void deleteContact(ContactEntry contactEntry); // Delete an existing Contact entry
@Query("SELECT * FROM contacts WHERE name = :name") // We can use the 'name' variable in the query by prefixing it with :
ContactEntry loadEntryByName(String name); // Returns the ContactEntry which matches the name input by the user
}
To generate the table you will need to Build A Database. To define the table you will need to use @Entity.
