Вы можете использовать RoomDB, который рекомендуется использовать Google вместо SQLite.
Шаги следующие:
Сначала вам нужно создать свой класс сущностей.
@Entity(tableName = "filmTable")
public class FilmEntity{
@PrimaryKey
@NonNull
private int filmId;
private String name;
private String length;
public String getName() { return name;}
public void setName(String name) { this.name = name;}
public String getLength() {return price; }
public void setLength(String length) { this.length = length;}
}
Затем вы должны создать свой класс filmDao для ваших запросов в базе данных.
@Dao
public interface FilmDao {
@Insert
void insertFilm(FilmEntity filmEntity);
@Delete()
void deleteFilm(FilmEntity filmEntity);
@Query("SELECT * FROM filmTable")
List<FilmEntity> getFilms();
}
И ваш класс базы данных.
@Database(entities = {FilmEntity.class}, version = 1)
public abstract class FilmDatabase extends RoomDatabase {
private static FilmDatabase sInstance;
public static final String DATABASE_NAME = "film-db";
public abstract FilmDao filmDao();
public static FilmDatabase getInstance(final Context context) {
if (sInstance == null) {
synchronized (FilmDatabase.class) {
if (sInstance == null) {
sInstance = buildDatabase(context.getApplicationContext());
}
}
}
return sInstance;
}
private static FilmDatabase buildDatabase(final Context appContext){
return Room.databaseBuilder(appContext, FilmDatabase.class, DATABASE_NAME).build();
}
}
Наконец, вы настроены на создание экземпляра вашей RoomDB со следующим кодом в классе вашего приложения.
public class App extends Application {
public static FilmDatabase filmDatabase;
@Override
public void onCreate() {
super.onCreate();
filmDatabase = FilmDatabase.getInstance(this);
}
}
Наконец, вы можете получить доступ к объектам вашей базы данных. Это возвращает список элементов MovieEntity из вашей базы данных.
App.filmDatabase.filmDao().getFilms();