Ado*_*els 3 android android-room
我有一个Room数据库项目,该项目为数据库中的每个表提供一个DAO和一个存储库(不同数据源之间的介体)。要记住的文件和类名很多。
我想知道每个项目使用单个存储库和DAO类是否有缺点?
没有这样的规则,您不必@Dao为每个表都分开。您可以创建一个包含所有数据库查询的Dao类。
@Dao
interface MyDao{
@Query("SELECT * FROM Student")
fun getStudents(): List<User>
@Query("SELECT * FROM Professors")
fun getProfs(): List<User>
}
Run Code Online (Sandbox Code Playgroud)
但是按照约定,您需要为每个实体单独创建一个Dao。这样,您的代码将井井有条。如果同一Dao中有许多无关的查询,则很难检查代码。
对于存储库,我将采用不同的方法。尽管没有这样的规则,您必须使用单独的存储库或单个存储库,但是我认为在需要的地方都可以使用两者。
例如,如果我只有一个来自User表的数据库调用和一个来自Post表的数据库调用,那么我看不到每个表都有两个单独的存储库。因此,在这种情况下,我只会制作单个存储库。但是另一方面,如果我从User表中有10个数据库调用,从表中有10 个以上的数据库调用Post,我将拆分存储库,并为每个表有两个存储库。
总而言之,这些只是约定,而以上只是建议的编码样式。
| 归档时间: |
|
| 查看次数: |
1421 次 |
| 最近记录: |