2

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

executeSqlScript( dao, sqlFile )

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

4

2 回答 2

0

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

OrmLite 不仅根据您的领域对象创建您的表,因此您无需编写 SQL 创建脚本。但是通过创建 Java 对象并将它们保存到 DB 来填充 SqLite 数据库也很容易。

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

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

于 2012-11-08T00:14:30.053 回答
0

当然有。如果每个文件都有一个表,则可以直接使用数据库浏览器将这些文件合并到一个 sql 文件甚至一个 db 文件中。

于 2012-11-08T00:04:43.563 回答