Android数据库,MVC中多个表的CRUD操作

时间:2014-06-26 14:48:56

标签: java android sqlite model-view-controller

Android的新手,试图在sql lite数据库中保存和查看一些信息。我的表格如下:

Student    Course     Registration
-------    ------     ------------
id (PK)    id(PK)     sid, cid (PK)         
name       name       term
email      credit

据我了解,MVC的Model部分将存储所有业务逻辑,因此我的'Student','Course'和'Registration'类将具有所有get / set方法。我有一个扩展SQLiteOpenHelper的DBHelper类,正如我在许多教程中看到的,这个类通常包含所有CRUD操作。

但我的问题是,因为我有多个表可供使用,我应该在哪里放置CRUD操作,如addStudent(),addCourse(),addRegistration()。我认为拥有一个包含Universe中所有CRUD方法的非常大的DBHelper类是不可行的。在一些示例中,我也在MainActivity中看到了视图操作(例如viewStudent())。这是一个很好的方法吗?一个例子(使用Classes及其方法)将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您的CRUD操作应该在Repository或DAO层中。

studentRepository.save(student);

如果使用域驱动设计,您的业务逻辑应位于服务层或域模型中。服务层使用存储库层来保存和检索数据。

studentService.registerStudentInCourse(student, course);

MVC中的模型也可以表示非域模型,例如LoginForm。它们与域模型略有不同,因为它们代表View的数据。 MVC模型可以是域模型,但并非必须如此。 MVC模型可以组合多个域模型。