在Android上使用Sqlite时的经验法则:'预烘焙'还是以编程方式生成?

时间:2012-09-02 11:55:06

标签: android sqlite

从一个依赖sqlite进行持久化的项目开始,我试图更好地理解使用预先支持的数据库与以编程方式生成的数据库的含义。到目前为止,我倾向于按this questioniosched应用db example进行编程方法。

这一切都很好,但在这一点上我不确定我能够简明扼要地阐明为什么这是一种更好的方法,特别是长期的方法。

PS:我排除了ormlite,因为域类在jar库中,已经在其他2个应用程序中进行了jpa注释。

2 个答案:

答案 0 :(得分:2)

预烘烤是可以的,但它引入了一些不太理想的过程。首先,您仍然必须创建数据库,可能是在支持表创建,列输入等的IDE中。然后您必须将该数据库保存在项目中并实现代码以将其实例化为您的应用程序数据库。

对于那些刚刚起步的人来说,这是一个很好的第一步,以后可以通过代码来处理更详细的详细过程。

然而,这个过程存在许多问题。首先,您已经丢失了创建数据库的步骤,除非您已保存sql查询以创建表。他们仍然不是你可以调整和重新运行的项目的一部分。

正如其他帖子中所提到的,您有一个重复的数据库占用空间。数据库也不太灵活,无法容纳更改和更新。

如果您是使用编码解决方案进行单元测试的粉丝,您可以查看在数据库生成中运行测试,这可以很好地扩展到您管理数据库迁移的方式。

所以代码虽然最初啰嗦最终更灵活,可以更容易进行单元测试,最终更快地采用更复杂的变化。

答案 1 :(得分:1)

根据我的经验,除了不使用预先创建的数据库之外,几乎没有什么区别可以省去额外文件的跟踪麻烦,并将其包含在.apk文件中。

鉴于没有预先创建的数据库的优势仅限于前面提到的,仍然存在使用它们值得额外工作的情况。一个很好的例子是预先加载了大量数据或复杂数据的数据库。

否则我建议不要使用预先创建的数据库。