在我的(Android)项目中,每个数据库表都有一个ContentProvider
。
每个ContentProvider
都扩展了AbstractContentProvider,它有一些虚拟方法可以获取有关数据库表的一些信息(例如表列名)。多亏了这一点,我们可以在每个表ContentProvider
上的插入/删除/等操作期间进行一些很好的检查。
但另一方面,添加新的数据库表包括编写大量冗余代码 - 在编写模式之后,我们需要在不同的表方法中创建一个类似的ContentProvider
并将其添加到清单中。
我们希望摆脱这种样板并能够保留当前的行为。可以这样做吗?我们认为我们使用的解决方案是首先将所有ContentProviders
个权限更改为同一个,并在清单中仅注册一个contentProvider
,但这显然是不可能的。
你有什么其他想法来实现这个目标吗?
答案 0 :(得分:0)
理想情况下,您应该使用单个内容提供程序并公开多个URIS - 每个表一个。
所有URI的CRUD方法的实现都是类似的,可以通用的方式完成。处理多个URI不需要代码重复。原因是SQliteDatabase具有与ContentProvider API参数映射的类似API /参数