如何将 SQLite 数据库捆绑并读入 Xcode 11.1?

Posted

技术标签:

【中文标题】如何将 SQLite 数据库捆绑并读入 Xcode 11.1?【英文标题】:How to bundle and read an SQLite database into Xcode 11.1? 【发布时间】:2019-11-18 20:24:44 【问题描述】:

我是一个 Swift 新手,目前正在开发一个 ios 应用程序,它需要访问一个现有的静态数据库(大小 400kb),该数据库包含 1 个大约 3300 行和 26 列的表。这个数据库最初是一个 CSV 文件,转换成一个 SQLite 文件。

从我在线阅读的论坛中,据我了解,SQLite 查询速度非常快,因此应该是首选。我只需要读取数据库并且不会执行任何写入。

我在网上找到了许多使用 Objective-C 的旧教程或几年前使用 swift 2 或 3 的教程。我发现一个更新的解决方案是使用这个 SQLite 包装器:https://github.com/stephencelis/SQLite.swift。但是,我不完全确定如何实现它。我想知道是否可以直接从我的捆绑数据库中读取,或者我是否必须创建一个新表并从捆绑数据库中复制。

【问题讨论】:

【参考方案1】:

看起来SQLite.swift 将为您完成工作。从您链接的页面上的文档来看,您似乎使用 Connection(pathToDB) 开始使用该库。

由于您正在捆绑数据库并且不打算修改它,您应该能够使用Bundle.main.path(forResource:, ofType:) 来获取捆绑数据库的路径。如果您想修改它,您可能需要将其复制到文档目录,然后引用该副本。

如果您需要更多帮助,关于获取各种捆绑资源的路径的另一个好答案: How to get path of image form Resource of main bundle

【讨论】:

感谢您的回复!所以我了解如何连接到数据库,但我现在被困在如何从数据库中执行读取。我只想对数据库执行查询,但我真的不知道下一步该做什么。

以上是关于如何将 SQLite 数据库捆绑并读入 Xcode 11.1?的主要内容,如果未能解决你的问题,请参考以下文章

将 CoreData 与捆绑的 SQLite 数据库一起使用?

我可以在 /sdcard 上下载 SQLite 数据库并从我的 Android 应用程序访问它吗?

如何使用 next.jdbc 将 SQLite 中的 bool 列读入 bool Clojure 值? SQLite 将布尔值存储为 0/1

如何在 Xcode 的共享文件夹中隐藏 sqlite 文件

如何使用 xcode5 在 Mac 应用程序中对捆绑的可执行文件进行代码签名

如何将 Sqlite 数据库文件复制/放入设备以在其上测试应用程序 - Xcode