攻城狮程序员

WCDB漫谈

2018-01-19  本文已影响195人  上冬十二

前言

移动端的数据库选型一直是一个难题,直到前段时间看到了WeMobileDev(微信前端团队)放出了第三个开源组件-WCDB

WCDB(WeChat DataBase)是微信官方的移动端数据库组件,致力于提供一个高效、易用、完整的移动端存储方案

微信团队怎么说

背景

WCDB的出现可以说解决了目前移动端数据库的几个难点

ORM

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

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

WCDB通过内建的宏实现ORM的功能。如下

image image

PS:但我不建议这么做,首先要避免在.h文件中引用<WCDB/WCDB.h>,因为你一旦引用,就需要改变.m文件为.mm文件,因为WCDB是基于objectiveC++;你可以使用Category特性将其隔离,在category中引用<WCDB/WCDB.h>,并遵守WCTTableCoding协议,使用WCDB_PROPERTY将声明绑定到数据库表的字段。然后在模型类中引用category。达到不印象Controller和View的目的。这点官方wiki中也有提到,使用文件模板来创建。具体请见Demo

对于一个已有的ObjC类,

CRUD

得益于ORM的定义,WCDB可以直接进行通过object进行增删改查(CRUD)操作。

Transaction

WCDB内可通过两种方式执行Transaction(事务),一是runTransaction:接口

image

这种方式要求数据库操作在一个BLOCK内完成,简单易用。

另一种方式则是获取WCTTransaction对象

image

WCTTransaction对象可以在类或函数间传递,因此这种方式也更具灵活性。

WINQ

WINQ(WCDB Integrated Query,音'wink'),即WCDB集成查询,是将自然查询的SQL集成到WCDB框架中的技术,基于C++实现。

原理

数据库修复

For Android

参考资料

Demo

微信移动端数据库组件WCDB系列(一)-iOS基础篇

微信移动端数据库组件WCDB系列(二) — 数据库修复三板斧

微信移动端数据库组件WCDB系列(三) — WINQ原理篇

微信移动数据库组件WCDB(四) — Android 特性篇

上一篇下一篇

猜你喜欢

热点阅读