Я только начал работать над приложением базы данных, когда понял, что должен реализовывать шаблон MVC
, поскольку приложение является довольно сложным и включает в себя несколько операций с базой данных.
В связи с этим я решил создать отдельный файл model class
для обработки операций с базой данных. Этот класс будет иметь все методы, которые возвратят мне данные после выполнения команды Sqlite (выберите для примера) ИЛИ просто выполнит команду SQLite (например, Delete). Но я хочу отделить этот класс от класса Database Adapter
, где я открываю, создаю и закрываю свою базу данных.
Позвольте мне поставить свою концепцию в код:Создание класса модели данных для обработки базы данных
public class DataModel
{
/*
Private members
*/
// Method to Select data from Student table
public ArrayList<String> FetchStudents (parameter 1)
{
private ArrayList<String> arrStudent;
DatabaseAdapter objDB= new DatabaseAdapter();
objDB.open();
/*
Some code
*/
objDB.close();
return arrStudent
}
//Method to delete record from Student table
public DeleteStudent(parameter 1)
{
DatabaseAdapter objDB= new DatabaseAdapter();
objDB.open();
//Some code
objDB.close();
}
/*
Rest of methods
*/
}
// DatabaseAdapterClass
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
/**
* onCreate method is called for the 1st time when database doesn't exists.
*/
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(TAG, "Creating DataBase: " + CREATE_STUDENT_TABLE);
db.execSQL(CREATE_STUDENT_TABLE);
}
/**
* onUpgrade method is called when database version changes.
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion);
}
}
Вопрос:
То, что я хочу спросить, это правильный подход реализации? Хорошо, если создать отдельный класс для методов базы данных ? Какие ограничения или проблемы, которые, по вашему мнению, могут беспокоить меня позже? Кроме того, есть ли лучший способ реализовать вышеупомянутую концепцию?
Благодаря
камень