Boost 新库MySQL介绍

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

         MySQL和MariaDB是广泛使用的SQL数据库服务器。MySQL客户端连接到服务器以发出SQL查询。为此,MySQL使用了专用协议。Boost.MySQL是该协议客户端端的实现。

        这个库是MySQL客户端/服务器协议的完整实现。它旨在以高效而易于使用的方式公开协议原语。在范围上类似于官方的libmysqlclient,但与Asio兼容,更安全且更具表达力。请注意,Boost.MySQL不使用libmysqlclient:它是MySQL协议的完整实现,因此可以与Asio本地兼容。

        这个库相对较低级。它让你访问文本SQL查询和预准备语句。不要期望一个ORM。本节简要介绍主要库功能。

该库的设计目标是:

        与Asio的互操作性:该库采用与Boost.Asio和Boost.Beast相同的原则。使用任何这些库的用户将立即理解Boost.MySQL,并且很容易将其集成到他们的程序中。 进一步抽象的基础:它允许有效地访问MySQL客户端/服务器协议,因此可以被更高级别的组件用作构建块。做一件事,并做得很好。 效率。 易于使用:MySQL协议充满了陷阱。我们信奉简单。在保留对重要部分的控制的同时,该库尽可能多地隐藏了协议的复杂性。 非目标:

        成为ORM。 成为SQL查询生成器。该库不专注于生成查询的实用程序。不要期望类似于table("orders").select(["id", "quantity"]).where("id", 42)的语法糖。 可移植性到其他SQL数据库。该库专注于MySQL。它将不适用于Postgres或SQLite等其他数据库。 何时使用 如果以下任何陈述为真,您可能考虑使用Boost.MySQL:

        您的应用程序使用Boost.Asio,您需要访问MySQL服务器。 您需要从C++应用程序异步访问MySQL服务器。 您需要从C++应用程序有效地访问MySQL服务器。 您需要一个BSL许可的库来访问您的MySQL服务器。 您正在编写一个更高级别的数据库访问库,比如ORM。 用例可能包括Web服务器、ETL流程和物联网系统。

您只需要同步访问MySQL服务器,效率对您的应用程序不重要。在这种情况下,官方客户端库可能更适合您。 您需要对不同SQL数据库(不仅是MySQL访问)进行同质SQL访问。您可能会发现在使用sqlpp11或类似的封装库时更有价值。 已测试的编译器和系统 Boost.MySQL在以下编译器下进行了测试:

gcc 5.4(Linux) gcc 6.5(Linux) gcc 10.3(Linux) gcc 11.2(Linux) gcc 13.0(Linux) clang 3.6(Linux) clang 7.0(Linux) clang 11.0(Linux) clang 14.0(Linux) clang 16.0(Linux) clang 14.0(OSX) MSVC 14.1 - Visual Studio 2017(Windows) MSVC 14.2 - Visual Studio 2019(Windows) MSVC 14.3 - Visual Studio 2022(Windows) 以及以下RDBMS系统:

MySQL v5.7.41。 MySQL v8.0.33。 MariaDB v11.0。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knowledgebase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值