SQLCppBridge 1.1.18

SQLCppBridge 1.1.18

Roman Makhnenko 维护。



  • Roman Makhnenko

SQL-CPP-Bridge


该框架的目的在于提供将任意的 C ++ / STL 描述的类结构映射到平面 SQL 表格的最简单方法。该框架还提供了读取和写入(同步/异步)、删除和编辑数据的功能,既可以整个容器,也可以是容器的单个元素。目前使用 MacOSX 和 iOS 的 SQLite 实现用于数据存储,但您可以进一步工作适配器,使其与任何类似 SQL 的库兼容。此外,所有形成 SQL 语句的工作都在库内完成,不需要外部干预或任何改进。警告!本软件按现行版本提供,没有任何明示或暗示的保证。在任何情况下,作者都不会因使用本软件而承担任何损害赔偿责任。

如何使用此库

为了使用此库,您需要在项目中添加框架 "sqlcppbridge",并在所需的地方包含文件 sqlcppbridge.h。在 'Cases' 文件夹中提供了几个使用此库的示例。

关键特性

  • 支持数据库结构版本。这意味着所有必要的表/索引的支持是自动创建的;如果需要,则调用用于更新表/索引的自定义 SQL 脚本,或者简单地删除并重新创建表(这是您可能需要 SQL 知识的唯一地方);
  • 通过字符串键存储基本类型(以下同)算术/枚举/std::string(所谓的 KV 存储);
  • 存储可迭代容器,其中包含所有基本类型的值,并在 KV 存储中存储;
  • 单个存储库中存储类的实例,其成员包含基本类型,创建所需的索引并对对象的唯一性进行控制;能够将对象加载到任意提供的可迭代的 STL 容器中,以满足任意标准;
  • 存储具有任意继承层次结构(包括多重和虚)的类的实例,以及具有任意大小的层次结构本身;
  • 存储类的实例,其成员包含其他复合类或基本/复合类型的容器;原则上,这种嵌套没有深度限制。

限制

  • 目前不支持可迭代容器的公共继承;
  • 也不支持栈、队列(明显不可迭代的)和 forward_list。

构建

您可以使用脚本

./make_framework

创建 ./build/iOS/sqlcppbridge.framework 和 ./build/MacOS/sqlcppbridge.framework,其中包括 armv7、armv7s、armv7k、arm64、arm64e、i386 和 x86_64 架构,可用于整个 iOS 设备和 iOS 模拟器套件。

或者您可以直接运行 'make' 工具来为默认环境创建静态库。

您也可以使用 CMake 构建它(适用于 iOS)

mkdir build.cmake && cd build.cmake
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS

有关可用 PLATFORM 选项的更多详细信息,请参阅 https://github.com/leetal/ios-cmake#options

为当前平台构建为 static

mkdir build.cmake && cd build.cmake
cmake ..

或者当前平台的共享

mkdir build.cmake && cd build.cmake
cmake -DBUILD_SHARED=ON ..

默认情况下,会检测sqlite3库并将其构建成共享库,或者将其指定为静态库版本的要求(见下文)。如果您想避免包含sqlite3(例如,您的项目中已经包含sqlite3),可以使用-DREQUIRE_SQLITE=OFF选项进行操作

mkdir build.cmake && cd build.cmake
cmake -DREQUIRE_SQLITE=OFF ..

注意 这仅适用于静态库;共享库将强制链接到sqlite3并包含它。

CMake还可以用于轻松集成SQLCppBridge(假设SQLCppBridge作为git子模块使用或放置在lib/SQLCppBridge中)

add_subdirectory ( "${CMAKE_SOURCE_DIR}/lib/SQLCppBridge" EXCLUDE_FROM_ALL )
...
target_link_libraries (
  myTarget
    PRIVATE  lib::SQLCppBridge
    ... )

以上示例将自动将myTarget链接到SQLCppBridge,并设置所需的包含目录。

安装

在Linux环境中,使用“sudo make install”将使用'make'工具组装的静态库和头文件放入系统文件夹