@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
private static final String DB_NAME = "my_app_database";
private static volatile AppDatabase instance;
public static synchronized AppDatabase getInstance(Context context) {
if (instance == null) {
instance = Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, DB_NAME)
.build();
}
return instance;
}
}
@Dao
public interface UserDao {
@Query("SELECT * FROM users")
List<User> getAll();
@Query("SELECT * FROM users WHERE uid IN (:userIds)")
List<User> loadAllByIds(int[] userIds);
@Insert
void insertAll(User... users);
@Delete
void delete(User user);
}
@Entity
public class User {
@PrimaryKey
public int uid;
@ColumnInfo(name = "first_name")
public String firstName;
@ColumnInfo(name = "last_name")
public String lastName;
}
- Android Developers. "Room Persistence Library." https://developer.android.com/training/data-storage/room.