Skip to content

Objc 快速入门

qiuwenchen edited this page Mar 7, 2024 · 2 revisions

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

  1. 模型绑定
  2. 创建数据库与表
  3. 操作数据

模型绑定

在WCDB内,ORM(Object Relational Mapping)是指

  • 将一个ObjC的类,映射到数据库的表和索引;
  • 将类的property,映射到数据库表的字段;

这一过程。通过ORM,可以达到直接通过Object进行数据库操作,省去拼装过程的目的。

对于已经存在的 Sample 类:

@interface Sample : NSObject
@property (nonatomic, assign) int identifier;
@property (nonatomic, strong) NSString* content;
@end

@implementation Sample
@end

可通过WCDB的内建的宏将 Sample 类的 identifiercontent 两个变量绑定到了表中同名字段:

@interface Sample : NSObject<WCTTableCoding>

@property (nonatomic, assign) int identifier;
@property (nonatomic, strong) NSString* content;

WCDB_PROPERTY(identifier)
WCDB_PROPERTY(content)

@end

@implementation Sample

WCDB_IMPLEMENTATION(Sample)
WCDB_SYNTHESIZE(identifier)
WCDB_SYNTHESIZE(content)

@end

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

创建数据库与表

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

创建数据库对象

WCTDatabase* database = [[WCTDatabase alloc] initWithPath:@"~/Intermediate/Directories/Will/Be/Created/sample.db"];

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

创建数据库表

// 以下代码等效于 SQL:CREATE TABLE IF NOT EXISTS sampleTable(identifier INTEGER, content TEXT)
BOOL ret = [database createTable:@"sampleTable" withClass:Sample.class];

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

操作数据

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

插入操作

//Prepare data
Sample* object = [[Sample alloc] init];
object.identifier = 1;
object.content = @"sample_insert";
//Insert
BOOL ret = [database insertObject:object intoTable:@"sampleTable"];

查找操作

NSArray<Sample*>* objects = [database getObjectsOfClass:Sample.class fromTable:@"sample_insert"];

更新操作

//Prepare data
Sample* object = [[Sample alloc] init];
object.content = @"sample_update";
//Update
BOOL ret = [database updateTable:@"sampleTable"
            setProperties:Sample.content
            toObject:object
            where:Sample.identifier > 0];

类似 Sample.identifier > 0 的语法是 WCDB 的特性,它能通过 OC 语法来进行 SQL 操作,我们将在语言集成查询一章中进行进一步的介绍。

删除操作

BOOL ret = [database deleteFromTable:@"sampleTable"];

更多教程

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

Clone this wiki locally