WCDB 的最基础的调用过程大致分为三个步骤:

  • 模型绑定
  • 创建数据库与表
  • 操作数据

模型绑定

WCDB 基于 Swift 4.0 的 Codable 协议实现模型绑定的过程。

对于已经存在的 Sample 类:

  1. class Sample {
  2. var identifier: Int? = nil
  3. var description: String? = nil
  4. }

可通过以下代码将 Sample 类的 identifierdescription 两个变量绑定到了表中同名字段:

  1. class Sample: TableCodable {
  2. var identifier: Int? = nil
  3. var description: String? = nil
  4.  
  5. enum CodingKeys: String, CodingTableKey {
  6. typealias Root = Sample
  7. static let objectRelationalMapping = TableBinding(CodingKeys.self)
  8. case identifier
  9. case description
  10. }
  11. }

这部分代码基本都是固定模版,暂时不用理解其每一句的具体含义,我们会在模型绑定一章中进行进一步介绍。

创建数据库与表

One line of code 是 WCDB 接口设计的一个基本原则,绝大部分的便捷接口都可以通过一行代码完成。

创建数据库对象

  1. let database = Database(withPath: "~/Intermediate/Directories/Will/Be/Created/sample.db")

WCDB 会在创建数据库文件的同时,创建路径中所有未创建文件夹。

创建数据库表

  1. // 以下代码等效于 SQL:CREATE TABLE IF NOT EXISTS sampleTable(identifier INTEGER, description TEXT)
  2. try database.create(table: "sampleTable", of: Sample.self)

对于已进行模型绑定的类,同样只需一行代码完成。

操作数据

基本的增删查改同样是 One line of code

插入操作

  1. //Prepare data
  2. let object = Sample()
  3. object.identifier = 1
  4. object.description = "sample_insert"
  5. //Insert
  6. try database.insert(objects: object, intoTable: "sampleTable")

查找操作

  1. let objects: [Sample] = try database.getObjects(fromTable: "sampleTable")

更新操作

  1. //Prepare data
  2. let object = Sample()
  3. object.description = "sample_update"
  4. //Update
  5. try database.update(table: "sampleTable",
  6. on: Sample.Properties.description,
  7. with: object,
  8. where: Sample.Properties.identifier > 0)
类似 Sample.Properties.identifier > 0 的语法是 WCDB 的特性,它能通过 Swift 语法来进行 SQL 操作,我们将在语言集成查询一章中进行进一步的介绍。

删除操作

  1. try database.delete(fromTable: "sampleTable")

更多教程

本章简单介绍了 WCDB Swift 进行操作的过程,并展示了基本的用法。后续将对里面的逐个细节进行详细介绍。建议按照顺序阅读基础教程部分,而进阶教程则可以按照个人需求选择阅读。