Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MySQL:C++;连接器与ODBC_C++_Mysql_Unixodbc - Fatal编程技术网

C++ MySQL:C++;连接器与ODBC

C++ MySQL:C++;连接器与ODBC,c++,mysql,unixodbc,C++,Mysql,Unixodbc,我计划开始一个基于web的项目,并计划使用MySQL作为数据库后端。我的服务器端编程语言是C++。我以前使用过unixodbc。由于我正在开始一个新项目,我想检查继续使用odbc是否好,或者是否应该尝试其他连接器。我知道使用odbc将提供RDBMS之间的可移植性。我真的不在乎,因为如果我换了,我会换成卡桑德拉或mongodb 我对C++连接库的要求: 在大型数据集上应该表现良好,我希望MySQL数据会变得更大 我希望有大量的传入连接,所以希望我的服务器能够打开更多的MySQL连接 表现更重要 连

我计划开始一个基于web的项目,并计划使用MySQL作为数据库后端。我的服务器端编程语言是C++。我以前使用过unixodbc。由于我正在开始一个新项目,我想检查继续使用odbc是否好,或者是否应该尝试其他连接器。我知道使用odbc将提供RDBMS之间的可移植性。我真的不在乎,因为如果我换了,我会换成卡桑德拉或mongodb

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

  • 在大型数据集上应该表现良好,我希望MySQL数据会变得更大
  • 我希望有大量的传入连接,所以希望我的服务器能够打开更多的MySQL连接
  • 表现更重要
  • 连接池
  • 功能集vs ODBC

  • 我计划只在Linux/Unix环境下使用,最好是CentOS/FreeBSD。请帮助我选择一个好的方法来连接C++的MySQL。

    < P> Qt库在其模块中有一个很好的SQL支持。QtSql模块有很好的文档、很好的面向对象API、不同的数据库后端支持(MySQL、通过unixODBC的ODBC、PostgreSQL、ORACLE)。使用QtSql模块不需要使用QTGUI功能。

    我喜欢SOCI库

    它有一个独特的EDSL(嵌入式域特定语言),它构建表达式树来编译查询和填充对象,而不是纯粹的SQL查询,这些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
    
    {
    会话sql(mysql,“db=test user=root password='Ala ma kota'”);
    三元组人;
    sql