首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式填充数据库

如何以编程方式填充数据库
EN

Stack Overflow用户
提问于 2010-04-22 10:07:55
回答 3查看 627关注 0票数 3

我目前有一个iPhone应用程序,它在启动时从外部XML文件读取数据,然后将这些数据写入数据库(尽管它只读/写用户的应用程序以前从未见过的数据)。

我担心的是,将会有一个几年的数据备份目录,当用户第一次运行应用程序时,它将不得不读取这些数据,并且速度非常慢。

我们建议的解决方案是将这些数据“预先构建”到应用程序数据库中,这样它就不必在第一次加载时加载存档数据-当他们购买它时,存档数据已经在应用程序中了。

我的问题是,是否有一种方法可以使用XML文件或其他文件中的数据自动填充此数据。数据库在SQLite中。我会手动填充它,但显然这将花费很长时间,所以我想知道是否有人有more...programmatic解决方案……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-22 13:48:13

我将充实Jason的回答,我已经将我的帖子标记为社区维基,因此我不应该因此而获得任何积分。

他说的不是一个虚拟的应用程序--像往常一样编写应用程序,但在调用填充plist的代码之前,检查数据库是否存在于您的主包中。您可以在模拟器中运行它,取出生成的sqllite数据库,并将其添加到您的项目中-如果您只需要读取它,您可以从主包目录中读取它。如果您需要进一步写入,则将其复制到可写文档区域,并从那里使用它。所以基本上对于主用户来说,填充数据库的代码永远不会被调用...

唯一的缺点是,即使你只需要数据库,你最终也会包含你正在读取的plist文件。您可以创建一个不同的构建目标,它是主构建目标的副本,唯一的区别是它包含plist文件,而您为应用商店构建的主目标没有。

票数 1
EN

Stack Overflow用户

发布于 2010-04-22 10:35:26

不要接受Jason的回答,我还不能评论,所以它必须在这里。

好的是你可以直接在你的Mac上访问模拟器的文件系统。我现在不在我的位置,或者我可以告诉你去哪里查找,但我只是通过将数据库文件的名称放入搜索灯中并运行它来找到它。

您也不需要编写任何代码来填充db,因为如果这样更方便的话,您可以使用命令行工具进行初始设置。

您将需要复制它,因为资源存储在应用程序包的只读签名部分中。

票数 1
EN

Stack Overflow用户

发布于 2010-04-22 12:03:59

我在使用sqlite时遇到了同样的问题,在海量插入时速度非常慢。因此,最好方法是直接提供一个已填充的sqlite数据库。

除了INSERT INTO之外,还有另一种方法可以填充sqlite数据库。您可以为每个表生成一个csv文件,并使用您的计算机和sqlite shell将其加载到表中:

只有两个简单的命令:

代码语言:javascript
运行
复制
.separator SEPARATOR
.import FILE TABLE 

示例:

代码语言:javascript
运行
复制
adslol:~ user$ sqlite3 
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .separator ;
sqlite> .import myData.csv nameOfMyTable
sqlite> .quit

我希望这就是你想要的:)

如果你需要一个好的sqlite3客户端试试SQLite Manager,它是一个火狐插件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2687810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档