在 Swift 里使用 SQLite 数据库

SQLite

说起 SQLite,它和你熟知的 MySQL 一样,都是关系型数据库管理系统,但与后者不同的地方在于,它完全不需要对应的独立服务器!

一般说起来,SQLite 都是以文件的形式存在,大多用在应用的内嵌储存里。通过在应用代码里加载 SQLite 库,就可以很方便地直接存取 SQLite 文件里的数据了。

SQLite 由 C 编写,所以你懂的,要调用它的库,一定也是 C 语言,什么指针啦……

要访问 SQLite 数据库里的数据——毕竟还是数据库,所以你只需要像访问其他数据库一样,在程序内使用 SQL 即可。

FMDB

当然了,虽然 Swift 本身也可以桥接 C 语言来使用 SQLite 库,但这样太麻烦了,尤其 C 不是 OOP ,你可能一下子用起来也不习惯,这里我们介绍最流行的第三方库:FMDB (Flying Meat Database)。

它把 SQLite 库的所有功能用 OC 封装,这样我们用起来就方便多了。得益于 Xcode 的高能,我们可以直接全自动地把 FMDB 的 OC 代码桥接为 Swift 。

导入代码

从 Github 下载 FMDB 项目文件之后,到它的 src 目录中,将所有的 .h 和 .m 文件(OC 代码文件)拖入你 Xcode 要使用 FMDB 的项目的文件目录中,这时候 Xcode 会检测到你导入了 Objective-C 的代码,会提示你是否创建桥接文件,确认之后,桥接文件会自动创建。

接下来编辑生成的桥接文件,在里边加入一句话:

这样,就导入成功了。

链接 SQLite 库

当然了,只导入了 FMDB 是不够的,它不能直接操作 SQLite 文件,我们还需要给项目链接 FMDB 所依赖的 SQLite 库,如果你现在直接编译,会遇到 39 个错误。

在 Xcode 项目里为 FMDB 添加 SQLite 库链接

在 Xcode 项目里为 FMDB 添加 SQLite 库链接

  1. 点击你 Xcode 左侧文件树最顶端的项目文件;
  2. 在中间一栏选择你的编译目标;
  3. 在右侧选择“Build Phases”选项卡;
  4. 在“Link Binary With Libaraies”选项中点击加号;
  5. 搜索并添加 libsqlite3.0.dylib 。

使用 FMDB

我们给 FMDB 传入数据库地址即可,如果对应地址的文件不存在,则 FMDB 会尝试创建文件然后打开。

你也可以不传入文件地址,这样的话 FMDB 就会把数据库创建在临时位置,一旦断开,文件也就没了。

使用之前需要先打开数据库,使用如下语句:

如果执行成功,说明已经成功打开数据库,接下来就可以执行 SQL 了:

这里执行语句可以是所有的 SQL,使用 ? 作为占位符,然后把要写入的值放到后边的参数数组里作为形式参数传入,注意占位符的数量一定要和数组长度相等!

执行完毕之后,关闭数据库:

>当然了,实际使用当中,你应该在创建一个 Model 来管理数据库的存取,而不是直接在代码中执行 SQL,这样才符合 OOP 的设计原则。 ?

了解更多

http://www.sqlite.org

github.com/ccgus/fmdb

http://www.theappguruz.com/blog/use-sqlite-database-swift

本文由 落格博客 原创撰写:落格博客 » 在 Swift 里使用 SQLite 数据库

转载请保留出处和原文链接:https://www.logcg.com/archives/1842.html

About the Author

R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注