-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Home
WCDB 相关讨论可以加我们的QQ群
WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。
-
易用,WCDB支持一句代码即可将数据取出并组合为object。
-
WINQ(WCDB语言集成查询):通过WINQ,开发者无须为了拼接SQL的字符串而写一大坨胶水代码。
-
ORM(Object Relational Mapping):WCDB支持灵活、易用的ORM。开发者可以很便捷地定义表、索引、约束,并进行增删改查操作。
[database getObjectsOfClass:WCTSampleConvenient.class fromTable:tableName where:WCTSampleConvenient.intValue>=10 limit:20];
-
-
高效,WCDB通过框架层和sqlcipher源码优化,使其更高效的表现。
-
多线程高并发:WCDB支持多线程读与读、读与写并发执行,写与写串行执行。
-
批量写操作性能测试:
更多关于WCDB的性能数据,请参考benchmark。
-
-
完整,WCDB覆盖了数据库相关各种场景的所需功能。
- 加密:WCDB提供基于SQLCipher的数据库加密。
- 损坏修复:WCDB内建了Repair Kit用于修复损坏的数据库。
- 反注入:WCDB内建了对SQL注入的保护。
- WCDB支持iOS 7、macOS 10.9以上。
- WCDB需使用Xcode 8.0以上版本进行编译。
- 需使用Objective-C++。
-
通过Carthage安装:
- 先安装Carthage;
- 在Cartfile中添加
github "Tencent/WCDB"
,并执行carthage update
; - 将
Carthage/Build/
目录下iOS或Mac的WCDB.framework
添加到你的项目工程配置的Build Phases
->Linked Binary and Libraries
中。 - 点击你的项目工程配置的
Build Phases
中的+
选项,在弹出菜单中选择New Run Script Phase
。在创建的脚本中添加carthage copy-frameworks
,并在Input Files
中添加对应平台的路径$(SRCROOT)/Carthage/Build/iOS/WCDB.framework
或$(SRCROOT)/Carthage/Build/Mac/WCDB.framework
。 - 在你的代码文件头引入头文件
#import <WCDB/WCDB.h>
。 -
由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀
.m
改为.mm
。
-
通过cocoapods安装:
- 先安装Cocoapods;
- 通过
pod repo update
更新WCDB的cocoapods版本。 - 在Podfile对应的target中,添加
pod 'WCDB'
及use_frameworks!
,并执行pod install --verbose
。 - 在项目中使用CocoaPods生成的
.xcworkspace
运行工程。 - 在你的代码文件头引入头文件
#import <WCDB/WCDB.h>
。 -
由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀
.m
改为.mm
。
-
通过动态库安装:
动态库与iOS 7不兼容,因此需支持iOS 7的需要通过静态库安装。
- 获取WCDB源码,并更新sqlcipher的submodule。
git clone https://github.com/Tencent/wcdb.git
cd wcdb
git submodule update --init sqlcipher
- 将
WCDB.xcodeproj
添加到你的工程中. - 在你的项目工程配置的
General
->Enbedded Binaries
中添加WCDB.framework
。注意这里有两个WCDB.framework,要选择动态库那个。选完后可在Build Phases
->Target Dependencies
中确认,若为WCDB
则正确,而WCDB iOS Static
则是静态库使用的。 - 在你的代码文件头引入头文件
#import <WCDB/WCDB.h>
。 -
由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀
.m
改为.mm
。
- 获取WCDB源码,并更新sqlcipher的submodule。
-
通过静态库安装:
- 获取WCDB源码,并更新sqlcipher的submodule。
git clone https://github.com/Tencent/wcdb.git
cd wcdb
git submodule update --init sqlcipher
- 将
WCDB.xcodeproj
添加到你的工程中. - 在你的项目工程配置的
Build Phases
->Target Dependencies
中添加WCDB iOS Static.framework
。 - 在你的项目工程配置的
Build Phases
->Linked Binary and Libraries
中添加WCDB.framework
和libz.tbd
。注意,这里有两个WCDB.framework
,需要添加WCDB iOS Static
的target
下的WCDB.framework
。 - 在你的项目工程配置的
Build Settings
->Other Linker Flags
中添加-all_load
和-ObjC
。 - 在你的代码文件头引入头文件
#import <WCDB/WCDB.h>
。 -
由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀
.m
改为.mm
。
- 获取WCDB源码,并更新sqlcipher的submodule。
使用教程请参考这里
- 文档请参考wiki.
- 接口请参考API reference
- 性能数据请参考Benchmark
- 示例代码请参考Sample
- 如果你熟悉FMDB,并期望迁移到WCDB,我们提供了一份专门的迁移教程。请参考从FMDB迁移到WCDB
- 基于SQLCipher的数据库加密
- 使用连接池实现并发读写
- 内建 Repair Kit 可用于修复损坏数据库
- 针对占用空间大小优化的数据库备份/恢复功能
- 日志输出重定向以及性能跟踪接口
- 内建用于全文搜索的
mmicu
FTS3/4 分词器
WCDB for Android 可通过 Maven 或 AAR 包引用,API 接口与 Android SDK 非常相近, 所以将已有的 App 迁移到 WCDB 是相当容易的。
详细请参看 Android 接入与迁移 与 sample-encryptdb
示例。
WCDB 可以使用 Repair Kit 或备份恢复来修复损坏的数据库,请参看 Android 数据库修复
与 sample-repairdb
示例。
你可以使用预编译的依赖库(OpenSSL crypto 和 SQLCipher)来编译 WCDB for Android, 使用 Gradle 或 Android Studio 皆可。
cd android
./gradlew build
Android Studio 请导入 android
目录作为 Root Project。
编译 WCDB 需要安装 Android NDK r11c 或以上,并在 android/local.properties
上配置好
SDK 与 NDK 路径。Android Studio 一般会帮你配置好。
如果你需要自己编译 OpenSSL 等依赖项,你需要一个 Bash 环境(Windows 可以安装 Cygwin 或 MSys)、target 为本机的 C 编译器(如 GCC)、Perl 5 以及 Tcl。之后执行下面命令即可编译依赖项。
export ANDROID_NDK_ROOT='/path/to/ndk'
./build-depends-android.sh
编译依赖项不是必要的,你完全可以使用预先编译好的库。
API 文档请参看 这里 (英文)。
- 欢迎使用 WCDB
- 基础教程
- 进阶教程
- 欢迎使用 WCDB
- 基础教程
- 进阶教程
- 欢迎使用 WCDB
- 基础教程
- 进阶教程
- 欢迎使用 WCDB
- 基础教程
- 进阶教程