WCDB Swift 是一个易用、高效、完整的移动数据库框架,它基于 SQLite 和 SQLCipher 开发。

易用性

One line of code 是 WCDB Swift 设计的基本原则之一。通过更现代的数据库开发模式,减少开发者所需使用的代码量,绝大部分增删查改都只需一行代码即可完成:

  1. let objects: [Sample] = try database.getObjects(fromTable: myTable,
  2. where: Sample.Property.identifier > 10)
  • 模型绑定。基于 Swift 4.0 的 Codable 协议,建立 Swift 类型与数据库表之间的映射关系,从而使得开发者可以通过类对象直接操作数据库。
  • 范型与类型推导。WCDB Swift 的接口与 Swift 的语法相结合,使复杂的数据库操作可以以简明的方式表达出来。因此,代码不仅易于编写,而且更易于阅读和维护。
  • 语言集成查询。深度结合 Swift 和 SQL 的语法,使得纯字符串的 SQL 可以以代码的形式表达出来。结合代码提示及纠错,极大地提高了开发效率。

高效性

WCDB Swift 基于 SQLite,并深入其源码进行了性能优化,以适配移动终端的场景。同时,对于常用且性能消耗较大的场景,如批量插入等,也做了针对性的优化。在多线程方面,WCDB Swift 不仅可以安全地在任意线程进行数据库操作,且其内部会智能地根据操作类型调配资源,使其能够并发执行,进一步提升效率。

完整性

WCDB Swift 总结实践中常见的问题,为数据库开发提供更完整、全面的使用体验:

  • 加密。基于 SQLCipher 的加密机制,为数据安全提供保障。
  • 全文搜索。WCDB Swift 提供简单易用的全文搜索接口,并包含适配多种语言的分词器,使得数据搜索更精准。
  • 反注入。内建在语言集成查询中的反注入机制,可以避免第三方从输入框注入 SQL,进行预期之外的恶意操作。
  • 字段升级。数据库模型与类定义绑定,使得字段的增加、删除、修改都与类变量的定义保持一致,不需要开发者额外地管理字段的版本。
  • 损坏修复。修复工具可以在系统错误、磁盘故障等情况下,尽最大限度地将损坏的数据找回并导出。