Code to create a Room database in correspondence with the @Entity and @DAO entries.
Create an abstract class to outline the creation of your table
@Database(entities = {ContactEntry.class}, version = 1, exportSchema = false) // Add @Database annotation and declare class(es) containing @Entity @TypeConverters(DateConverter.class) // See the @TypeConverters post: https://an.aldezu.com/archives/454 - not in use in this example but included for context public abstract class AppDatabase extends RoomDatabase { // Extend RoomDatabase private static final String LOG_TAG = AppDatabase.class.getSimpleName(); private static final Object LOCK = new Object(); private static final String DATABASE_NAME = "contacts"; // Define database name private static AppDatabase sInstance; public static AppDatabase getInstance(Context context) { if (sInstance == null) { // This will only ever generate ONE instance of the AppDatabase (Singleton pattern) synchronized (LOCK) { Log.d(LOG_TAG, "Creating new database instance"); sInstance = Room.databaseBuilder(context.getApplicationContext(), // Requires current context, the database class and database name AppDatabase.class, AppDatabase.DATABASE_NAME) .build(); } } Log.d(LOG_TAG, "Getting the database instance"); return sInstance; // Will return new instance if null, old instance if not } public abstract ContactDao contactDao(); // Create an instance of the DAO for this database }To interact with the table you will need a @DAO. To define the table you will need to use @Entity.
