安装Android应用程序时将静态数据加载到Sqlite DB中

时间:2012-11-07 23:26:20

标签: android sqlite ormlite

我们的应用程序中有几个表,每个表都是在创建数据库时通过RAW sql文件填充的,即第一次安装应用程序。即使用

executeSqlScript( dao, sqlFile )

每个表都有1个sql文件。目前这很简单,但随着表数量的增加,sql文件的数量也会增加。有没有更好的方法来填充数据库?将静态数据存储在XML文件中并将其反序列化为Domain对象并通过OrmLite保存这些数据是一个更好的选择还是我还缺少其他技巧?

2 个答案:

答案 0 :(得分:0)

肯定有。如果每个文件都有一个表,那么可以将合并这些文件合并到一个sql文件中,甚至可以直接用database browser

直接合并到db文件中

答案 1 :(得分:0)

我还在决定如何在一个Android应用中访问SqLite数据库。最后我最终得到了OrmLite。基本上是因为我不喜欢将SQL语句硬编码为Java代码。我正在寻找类似于Hibernate的东西但是" lite"足够Android。

OrmLite不仅根据您的域对象创建表,因此您不需要编写SQL创建脚本。但是,只需创建Java对象并将其保存到DB,就可以很容易地填充SqLite数据库。

只有当我使用OrmLiteSqliteOpenHelper.onUpgrade()方法升级数据库时,才需要编写SQL脚本。在这种情况下,需要编写ALTER TABLE语句。否则,您可以使用纯Java来操作SqLite DB。如果您为每个表创建1个Java文件,则由您决定。或者在单个Java文件中填充多个表。关于这一点的好处是你编写了Java代码验证的Java代码。如果您将SQL语句硬编码到字符串,则不是这样。

如果您有大量初始化数据,并且可以轻松地获取XML文件中的数据。然后将XML反序列化为域对象并使用OrmLite将它们存储到DB也可能是一种解决方案。