-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Swift 快速入门
sanhuazhang edited this page Dec 18, 2017
·
7 revisions
WCDB 的最基础的调用过程大致分为三个步骤:
- 模型绑定
- 创建数据库与表
- 操作数据
模型绑定指的是将一个类,映射到数据库表的模型的过程。WCDB 基于 Swift 4.0 的 Codable
协议实现这一过程。
对于已经存在的 Sample
类:
class Sample {
var identifier: Int? = nil
var description: String? = nil
}
可通过以下代码将 Sample
类的 identifier
和 description
两个变量绑定到了表中同名字段:
class Sample: TableCodable {
var identifier: Int? = nil
var description: String? = nil
required init() {}
enum CodingKeys: String, CodingTableKey {
typealias Root = Sample
static let objectRelationalMapping = TableBinding(CodingKeys.self)
case identifier
case description
}
}
与 Swift 的 Codable
协议不同的是,这里的 CodingKeys
必须列举每一个需要绑定的字段,即便是所有字段都需要绑定。因为 CodingKeys
除了用于模型绑定,还将用于语言集成查询,我们会在后面章节中介绍。
这部分代码基本都是固定模版,暂时不用理解其每一句的具体含义,我们会在模型绑定一章中进行进一步介绍。
One line of code 是 WCDB 接口设计的一个基本原则,绝大部分的便捷接口都可以通过一行代码完成。
let database = Database(withPath: "~/Intermediate/Directories/Will/Be/Created/sample.db")
WCDB 会将创建数据库文件的同时,创建路径中所有未创建文件夹。
try database.create(table: "sampleTable", of: Sample.self)
对于已进行模型绑定的类,同样只需一行代码完成。
建表的代码等效于 SQL:
CREATE TABLE IF NOT EXISTS sampleTable(identifier INTEGER, description TEXT)
基本的增删查改同样是 One line of code
//Prepare data
let object = Sample()
object.identifier = 1
object.description = "sample_insert"
//Insert
try database.insert(objects: object, intoTable: "sampleTable")
let objects: [Sample] = try database.getObjects(fromTable: "sampleTable")
//Prepare data
let object = Sample()
object.description = "sample_update"
//Update
try database.update(table: "sampleTable",
on: Sample.Properties.description,
where: Sample.Properties.identifier > 0
with: object)
Sample.Properties.identifier > 0
是 WCDB 的特性,它能通过 Swift 语法来进行 SQL 操作,我们将在语言集成查询一章中进行进一步的介绍。
try database.delete(fromTable: "sampleTable")
- 欢迎使用 WCDB
- 基础教程
- 进阶教程
- 欢迎使用 WCDB
- 基础教程
- 进阶教程
- 欢迎使用 WCDB
- 基础教程
- 进阶教程
- 欢迎使用 WCDB
- 基础教程
- 进阶教程