Boost
arrow_drop_down
Boost.MySQL
M
D

本次发布

Anarthal (Rubén Pérez)
Anarthal (Rubén Pérez)
作者
Holger Hoffstätte
贡献者 - 新

依赖项

添加了

Boost.MySQL

分支 Windows/Linux 构建 OSX 构建 覆盖率 文档
master Build Status Build Status codecov master 分支文档
develop Build Status Build Status codecov develop 分支文档

Boost.MySQL 是一个基于 Boost.Asio 的 C++11 MySQL 和 MariaDB 数据库服务器客户端。Boost.MySQL 是 Boost 的一部分。

Boost 1.85 中的重大变更

Boost.MySQL 现在需要链接 Boost.Charconv,这是一个编译型库。如果您遇到链接错误,请将您的可执行文件链接到 Boost::charconv CMake 目标。无需更改 C++ 代码。

反馈

您有什么建议吗?您想分享在使用此库时遇到的好或坏的经历吗?请在此问题下评论。

为什么是另一个 MySQL C++ 客户端?

  • 它与 Boost.Asio 完全兼容,并且可以很好地与 Boost.Asio 生态系统中的任何其他库(如 Boost.Beast)集成。
  • 它支持 Boost.Asio 的通用异步模型,这意味着您可以使用回调、未来或协程(包括 C++20 协程)实现异步。
  • 它使用 C++11 编写,并利用了 C++11 的特性。
  • 它是纯头文件库。

使用库

要使用此库,您需要

  • Boost 1.82 或更高版本(Boost.MySQL 不支持独立 Asio)。
  • 支持 C++11 的编译器。
  • OpenSSL。

该库是纯头文件库,但它依赖于其他 Boost 纯头文件库和 OpenSSL。要使用该库,请按正常方式安装 Boost(例如,通过 b2 install),并创建一个 CMakeLists.txt 文件,如下所示(将 main 替换为您的可执行文件名称,将 main.cpp 替换为您的源文件列表):

project(boost_mysql_example LANGUAGES CXX)

find_package(Boost REQUIRED COMPONENTS charconv)
find_package(Threads REQUIRED)
find_package(OpenSSL REQUIRED)

add_executable(main main.cpp)
target_link_libraries(main PRIVATE Boost::charconv Threads::Threads OpenSSL::Crypto OpenSSL::SSL)

已测试

Boost.MySQL 已与以下编译器进行了测试

  • gcc 5 到 14。
  • clang 3.6 到 18。
  • msvc 14.1, 14.2 和 14.3。

以及以下数据库

  • MySQL v5.7.41。
  • MySQL v8.4.1。
  • MariaDB v11.4.2。

功能

  • 文本查询(执行文本 SQL 查询和数据检索)。MySQL 将此称为“文本协议”,因为所有信息都通过文本传递(与下面的预处理语句相反)。
  • 预处理语句。MySQL 将此称为“二进制协议”,因为执行预处理语句的结果以二进制格式而不是文本格式发送。
  • 存储过程。
  • 身份验证方法(身份验证插件):mysql_native_password 和 caching_sha2_password。这些分别是 MySQL 5/MariaDB 和 MySQL 8 的默认方法。
  • 加密连接 (TLS)。
  • TCP 和 UNIX 套接字传输。
  • 连接池。
  • 友好的客户端生成 SQL。
  • (实验性) 管道。

全部时间

Dirk Stolle
Dirk Stolle
贡献者
Rene Rivera
Rene Rivera
贡献者
glywk
glywk
贡献者