之前我曾使用过Android的sql lite数据库,但我总是逐个执行查询。现在我需要执行大量查询来初始化城市数据库。
所以我以前做过
sql = "THE QUERY";
myDatabase.execSql(sql);
现在我想执行如下文件:http://joeylemmens.be/downloads/postcodes_en_gemeenten.sql
最好的方法是什么?
我可以将整个文件存储在一个字符串中然后重新执行上面的操作,但必须有更好的东西。
答案 0 :(得分:4)
如果您的目标是使用某些默认值初始化SQLite数据库,那么您应该拥有具有这些默认值的数据库版本,您可以提供您的应用程序以及该默认数据库版本。
从文件读取的另一种方法&执行sqls也很好&我想不出更好的解决方案。
修改强>
答案 1 :(得分:2)
将资源中的SQL字符串存储为文本文件,使用AssetManager
读取字符串,照常执行。
答案 2 :(得分:2)
如果您在一个文件中有多个语句,Android的API将不支持它。
看看如何将文件拆分为单独的语句并执行它们: https://github.com/greenrobot/greenDAO/blob/master/DaoCore/src/de/greenrobot/dao/DbUtils.java
PS:是的,你应该下载文件并在之前将信息存储为一个字符串。