如何将 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