Skip to content

MySQL Connector/C++ is a MySQL database connector for C++. It lets you develop C++ and C applications that connect to MySQL Server.

License

Notifications You must be signed in to change notification settings

mysql/mysql-connector-cpp

Folders and files

NameName
Last commit message
Last commit date
Mar 18, 2025
Mar 5, 2024
Mar 18, 2025
Mar 10, 2025
Mar 11, 2025
Mar 18, 2025
Mar 14, 2025
Mar 20, 2025
Mar 21, 2025
Mar 21, 2025
Mar 10, 2025
Feb 21, 2024
Oct 9, 2024
Mar 17, 2025
Oct 7, 2024
Feb 18, 2019
Nov 27, 2018
Mar 17, 2025
Feb 14, 2019
Dec 11, 2024
Sep 20, 2024
Dec 13, 2024
May 9, 2018
May 22, 2024
Feb 21, 2024
May 8, 2024
Mar 21, 2025
Feb 21, 2024
Feb 21, 2024
Mar 11, 2025

Repository files navigation

MySQL Connector/C++

This is a release of MySQL Connector/C++, the C++ interface for communicating with MySQL servers.

For detailed information please visit the official MySQL Connector/C++ documentation.

Licensing

Please refer to files README and LICENSE, available in this repository, and Legal Notices in documentation for further details.

Download & Install

MySQL Connector/C++ can be installed from pre-compiled packages that can be downloaded from the MySQL downloads page. The process of installing of Connector/C++ from a binary distribution is described in MySQL online manuals

Building from sources

MySQL Connector/C++ can be installed from the source. Please check MySQL online manuals

GitHub Repository

This repository contains the MySQL Connector/C++ source code as per latest released version. You should expect to see the same contents here and within the latest released Connector/C++ package.

Sample Code

#include <iostream>
#include <mysqlx/xdevapi.h>

using ::std::cout;
using ::std::endl;
using namespace ::mysqlx;


int main(int argc, const char* argv[])
try {

  const char   *url = (argc > 1 ? argv[1] : "mysqlx://root@127.0.0.1");

  cout << "Creating session on " << url
       << " ..." << endl;

  Session sess(url);

  cout <<"Session accepted, creating collection..." <<endl;

  Schema sch= sess.getSchema("test");
  Collection coll= sch.createCollection("c1", true);

  cout <<"Inserting documents..." <<endl;

  coll.remove("true").execute();

  {
    DbDoc doc(R"({ "name": "foo", "age": 1 })");

    Result add =
      coll.add(doc)
          .add(R"({ "name": "bar", "age": 2, "toys": [ "car", "ball" ] })")
          .add(R"({ "name": "bar", "age": 2, "toys": [ "car", "ball" ] })")
          .add(R"({
                 "name": "baz",
                  "age": 3,
                 "date": { "day": 20, "month": "Apr" }
              })")
          .add(R"({ "_id": "myuuid-1", "name": "foo", "age": 7 })")
          .execute();

    std::list<string> ids = add.getGeneratedIds();
    for (string id : ids)
      cout <<"- added doc with id: " << id <<endl;
  }

  cout <<"Fetching documents..." <<endl;

  DocResult docs = coll.find("age > 1 and name like 'ba%'").execute();

  int i = 0;
  for (DbDoc doc : docs)
  {
    cout <<"doc#" <<i++ <<": " <<doc <<endl;

    for (Field fld : doc)
    {
      cout << " field `" << fld << "`: " <<doc[fld] << endl;
    }

    string name = doc["name"];
    cout << " name: " << name << endl;

    if (doc.hasField("date") && Value::DOCUMENT == doc.fieldType("date"))
    {
      cout << "- date field" << endl;
      DbDoc date = doc["date"];
      for (Field fld : date)
      {
        cout << "  date `" << fld << "`: " << date[fld] << endl;
      }
      string month = doc["date"]["month"];
      int day = date["day"];
      cout << "  month: " << month << endl;
      cout << "  day: " << day << endl;
    }

    if (doc.hasField("toys") && Value::ARRAY == doc.fieldType("toys"))
    {
      cout << "- toys:" << endl;
      for (auto toy : doc["toys"])
      {
        cout << "  " << toy << endl;
      }
    }

    cout << endl;
  }
  cout <<"Done!" <<endl;
}
catch (const mysqlx::Error &err)
{
  cout <<"ERROR: " <<err <<endl;
  return 1;
}
catch (std::exception &ex)
{
  cout <<"STD EXCEPTION: " <<ex.what() <<endl;
  return 1;
}
catch (const char *ex)
{
  cout <<"EXCEPTION: " <<ex <<endl;
  return 1;
}

Documentation

Questions/Bug Reports

About

MySQL Connector/C++ is a MySQL database connector for C++. It lets you develop C++ and C applications that connect to MySQL Server.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published