WCDB

高效易用的移动数据库框架
授权协议 BSD
开发语言 C/C++
所属分类 数据库相关、 数据库调整和优化
软件类型 开源软件
地区 国产
投 递 者 孙志
操作系统 跨平台
开源组织 腾讯
适用人群 未知
 软件概览

WCDB 是腾讯开源的一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持 iOS、macOS 和 Android。

WCDB for iOS/macOS

基本功能

  • WINQ(WCDB语言集成查询): 通过WINQ,开发者无须为了拼接SQL的字符串而写一大坨胶水代码。

  • ORM(Object Relational Mapping): WCDB支持灵活、易用的ORM。开发者可以很便捷地定义表、索引、约束,并进行增删改查操作。

  • 多线程高并发: WCDB支持多线程读与读、读与写并发执行,写与写串行执行。

  • 加密:WCDB提供基于SQLCipher的数据库加密。

  • 损坏修复: WCDB内建了Repair Kit用于修复损坏的数据库。

  • 反注入: WCDB内建了对SQL注入的保护。

  • ...

基本要求

  • WCDB支持iOS 8、macOS 10.10以上。

  • WCDB需使用Xcode 8.0以上版本进行编译。

  • 需使用Objective-C++。

WCDB for Android

基本功能

  • 基于SQLCipher的数据库加密

  • 使用连接池实现并发读写

  • 内建 Repair Kit 可用于修复损坏数据库

  • 针对占用空间大小优化的数据库备份/恢复功能

  • 日志输出重定向以及性能跟踪接口

  • 内建用于全文搜索的 mmicu FTS3/4 分词

  • WCDB 作为微信的终端数据库,从 2017.6 开源至今,共迭代了 5 个版本。我们一直关注开发者们的需求,并不断优化性能,新增如全文搜索等常用的功能。而这其中,呼声最高的莫过于 对 Swift 的支持。 WCDB ObjC 版本的实现中,由于引入了 C++ 代码,并不能直接 bridge 到 Swift。因此,我们从 9 月份开始就着手使用原生的 Swift,重写 WCDB。并于 10.10

  • 本文旨在记录自己项目过程中的一些使用,想要了解更多的小伙伴移步到这里:WCDB wiki 1.集成 使用cocoapods集成到项目中 pod 'WCDB' 2.封装 这里封装了一个工具类,专门对数据库创建,表创建,查询,更新等操作的封装! 由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm 为避免大范围更改,我们将使用WCDB代码的类隔绝起来! WM

  • 1.前言 刚刚在玩雀魂,感觉发牌姬一点也不爱我,遂来写一下今天学习WCDB(https://github.com/Tencent/wcdb)的记录。很久之前就开始了移动端数据库框架的调研,在这之前,IOS端是使用的FMDB框架,但是这个框架已经很久没有更新维护了,并且还是手动拼接SQL语句,容易出错和被SQL注入,所以一直想换框架。在这里就想提出了几个要求:性能不能太弱、移动端通用、体积不能太大。

  • importandroid.content.ContentValues;importandroid.content.Context;importcom.aax.exchange.entity.Favorites;importcom.tencent.wcdb.Cursor;importcom.tencent.wcdb.database.SQLiteDatabase;importjava.util.A

  • 接入方法 1、在接入 Room 的基础上,gradle 里加上 WCDB 的 room 组件 dependencies { implementation 'com.tencent.wcdb:room:1.0.8' // 代替 room-runtime,同时也不需要再引用 wcdb-android annotationProcessor 'android.arch.persist

  • WCDB简介 WCDB 是腾讯开源的移动数据库框架,官网:https://github.com/Tencent/wcdb。 和fmdb相比,主要是它支持ORM,用c++编写的,效率更高并且还是跨平台的,既可以在iOS上使用也可以在Android上使用。 安装 使用Cocoapods 安装,pod ‘WCDB’,其他安装方式请参考https://github.com/Tencent/wcdb/wik

  • ,并定义类遵循WCTTableCoding协议 - **WCDB_PROPERTY**用于在头文件中声明绑定到数据库表的字段。 - **WCDB_IMPLEMENTATION**,用于在类文件中定义绑定到数据库表的类。同时,该宏内实现了WCTTableCoding。因此,开发者无须添加更多的代码来完成WCTTableCoding的接口 - **WCDB_SYNTHESIZE**,用于在类文件中定义

 相关资料
  • 前言 长久以来SQLite DB都有损坏问题,从Android、iOS等移动系统,到Windows、Linux 等桌面系统都会出现。由于微信所有消息都保存在DB,服务端不保留备份,一旦损坏将导致用户 消息被清空,显然不能接受。 我们即将开源的移动数据库组件 WCDB (WeChat Database),致力于解决 DB 损坏导致数据丢失的问题。 之前的一篇文章《微信 SQLite 数据库修复实践》

  • 微信的移动端数据库组件 WCDB 已经正式开源了,有关注的小伙伴可能已经用上了。如果还没用上, 可以翻到文末关注我们的 GitHub 和公众号其他文章。 之前我们已经发过几篇 iOS 和修复的文章,Android 由于接口跟系统几乎一样,相信大家都比较熟悉, 不熟悉用法也可以到 Android Developer 官网看一下。但是,我们也有一些特色功能和优化大家可能不容易注意到, 现在就单独拿出来

  • 高效、完整、易用是WCDB的基本原则。前几篇文章分享了WCDB的基本用法和修复工具,接下来将更深入地聊聊WCDB在易用性上的思考和实践。 对于各类客户端数据库,似乎都绕不开拼接字符串这一步。即便在Realm这样的NoSQL的数据库中,在进行查询时,也依赖于字符串的语法: //Realm code [Dog objectsWhere:@"age < 2"] 别看小小的字符串拼接,带来的麻烦可不小:

  • WCDB(WeChat DataBase)是微信官方的移动端数据库组件,致力于提供一个高效、易用、完整的移动端存储方案。 它包含三个模块: WCDB-iOS/Mac WCDB-Android 数据库损坏修复工具WCDBRepair 目前正在筹备开源中。 背景 对于iOS开发者来说,数据库的技术选型一直是个令人头痛的问题。由于Apple提供的CoreData框架差强人意,使得开发者们纷纷将目光投向开

  • 本文向大家介绍移动数据库,包括了移动数据库的使用技巧和注意事项,需要的朋友参考一下 移动数据库与主数据库是分开的,可以轻松地传输到各个地方。即使它们没有连接到主数据库,它们仍然可以与数据库通信以共享和交换数据。 移动数据库包括以下组件- 存储所有数据并链接到移动数据库的主系统数据库。 移动数据库,允许用户即使在移动中也可以查看信息。它与主数据库共享信息。 使用移动数据库访问数据的设备。该设备可以是

  • 问题内容: 我有一个熊猫数据框。看起来像这样: 但有100行和100列。 我想展平它,使其看起来像这样: 最有效的方法是什么? 谢谢, 插口 问题答案: 选项1 无法100%确定效率,但最简单的方法是使用 。 选项2 另一个简单的选项 - 要么,

  • 问题内容: 我正在启动一个新应用程序,并考虑使用ORM,尤其是SQLAlchemy。 假设我的数据库中有一列“ foo”,我想增加它。在直通sqlite中,这很容易: 我弄清楚了SQLAlchemy SQL-builder等效项: 这稍微慢一点,但是没有太多。 这是我对SQLAlchemy ORM方法的最佳猜测: 这样做是正确的,但所需的时间是其他两种方法的不到50倍。我认为这是因为它必须先将所有

  • 我正在尝试优化一个程序,该程序需要在数据流的每个位置(字节)为数据流中的恒定大小窗口计算哈希。在比可用RAM大得多的磁盘文件中查找重复时需要它。目前我为每个窗口计算单独的md5哈希,但它花费了很多时间(窗口大小为几千字节,因此每个数据字节被处理几千次)。我想知道是否有一种方法可以在恒定(与窗口大小无关)时间内计算每个后续哈希(例如移动平均中1个元素的加减)?哈希函数可以是任何东西,只要它不提供长哈