gpt4 book ai didi

android - Android Room 数据库项目中的单个或多个 DAO 和存储库?

转载 作者:太空狗 更新时间:2023-10-29 16:25:58 26 4
gpt4 key购买 nike

我有一个 Room 数据库项目,它有一个 DAO 和一个存储库(不同数据源之间的中介),用于数据库中的每个表。要记住很多文件和类名。

我想知道每个项目使用单个存储库和 DAO 类是否有缺点?

最佳答案

没有这样的规则,你必须为每个表创建单独的 @Dao。您可以制作一个包含所有数据库查询的 Dao 类。

@Dao
interface MyDao{
@Query("SELECT * FROM Student")
fun getStudents(): List<User>

@Query("SELECT * FROM Professors")
fun getProfs(): List<User>
}

但按照惯例,您为每个实体创建单独的 Dao。这样你的代码就会组织起来,仅此而已。如果您在同一个 Dao 中有一堆不相关的查询,则很难审查您的代码。

对于存储库,我会有不同的方法。虽然没有这样的规则,你必须使用单独的存储库或单个存储库,我会在我认为有必要的地方使用两者。

例如,如果我只有一个来自 User 表的数据库调用和一个来自 Post 表的数据库调用,我看不出为每个表设置两个单独的存储库有什么意义.所以在这种情况下我只会创建一个存储库。但另一方面,如果我有 10 个来自 User 表的数据库调用和 10 个来自 Post 表的数据库调用,我将拆分存储库并为每个表创建两个存储库。

总而言之,这些只是约定,上面只是建议的编码风格。

关于android - Android Room 数据库项目中的单个或多个 DAO 和存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53922862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com