我们的应用程序中有几个表,每个表都是在创建数据库时通过 RAW sql 文件填充的,即第一次安装应用程序。即使用
executeSqlScript( dao, sqlFile )
每个表都有 1 个 sql 文件。目前这是直截了当的,但随着表数量的增加,sql 文件的数量也会增加。有没有更好的方法来填充数据库?将静态数据存储在 XML 文件中并将其反序列化为域对象并通过 OrmLite 持久化这些是更好的选择,还是我缺少其他一些技巧?
我还在决定如何在一个 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 也可能是一种解决方案。
当然有。如果每个文件都有一个表,则可以直接使用数据库浏览器将这些文件合并到一个 sql 文件甚至一个 db 文件中。