C++ 11 添加于 Boost 1.82.0
本次发布
依赖项
添加了
Boost.MySQL
分支 | Windows/Linux 构建 | OSX 构建 | 覆盖率 | 文档 |
---|---|---|---|---|
master |
master 分支文档 | |||
develop |
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。
- (实验性) 管道。