gpt4 book ai didi

c++ - MySQL : C++ Connector vs ODBC

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:48:49 28 4
gpt4 key购买 nike

我打算开始一个基于 Web 的项目,并且我计划使用 MySQL 作为数据库后端。我的服务器端编程语言是 C++。我以前用过 unixodbc。因为我开始一个新项目,所以我想检查它是否适合继续使用 odbc 还是应该尝试不同的连接器。我知道使用 odbc 将提供 RDBMS 之间的可移植性。我真的不关心它,因为如果我切换,我会切换到 cassandra 或 mongodb。

我对 C++ 连接库的要求:

  1. 应该在大型数据集上表现良好,我预计 MySQL 数据会变得更大。
  2. 我希望有大量的传入连接,所以希望我的服务器能打开更多的 MySQL 连接。
  3. 性能更重要。
  4. 连接池。
  5. 功能集与 ODBC。

我计划只针对 Linux/Unix 环境,最好是 CentOS/FreeBSD。请帮助我选择一种从 C++ 连接到 mysql 的好方法。

最佳答案

我喜欢 SOCI 库。 http://soci.sourceforge.net/

它有一个独特的 EDSL(嵌入式域特定语言),它构建表达式树来编译查询并填充您的对象,而不是纯 SQL 查询发送新的(变体)类型并让您弄清楚如何正确转换它们。

它是轻量级的,适应您的对象,非常直观,连接到任何类型的数据库以防您想要更改,甚至支持存储过程。一段时间后肯定会很方便,但对于您可能已经习惯的内容,学习曲线会略有变化。

代码示例:

{

session sql(mysql, "db=test user=root password='Ala ma kota'");

boost::tuple<string, boost::optional<string>, int> person;

sql << "select name, phone, salary from persons where ...",
into(person);

if (person.get<1>().is_initialized())
{
// the given person has a phone number
}
else
{
// this person does not have a phone number
}

} // session closed at scope end

关于c++ - MySQL : C++ Connector vs ODBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18748849/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com