Application Development with MariaDB Connector/C++

MariaDB Connector/C++ enables C++ applications to establish client connections to MariaDB Enterprise over TLS.

Build Your Application with Connector/C++

When you build a C++ application, your compiler must link your application with the MariaDB Connector/C++ shared library.

The following g++ (GNU GCC) command demonstrates how to link an application with the MariaDB Connector/C++ shared library using the -lmariadbcpp argument:

$ g++ -o example example.cpp -std=c++11 -lmariadbcpp

If you are not using the g++ compiler, please consult your compiler's manual.

Header Files

MariaDB Connector/C++ includes several header files. In some cases, developers might find it useful to inspect the MariaDB Connector/C++ header files to view the definitions of classes, functions, and methods.

The header files:

  • Contain the definitions of classes, functions, and methods in the sql namespace.

  • Are installed to the /usr/include/mariadb/conncpp/ directory by default on Linux.

C++ applications developed using MariaDB Connector/C++ must include the conncpp.hpp header file.

When a C++ application includes conncpp.hpp, the application will automatically include other header files that are included by conncpp.hpp:

  • CallableStatement.hpp

  • Connection.hpp

  • DatabaseMetaData.hpp

  • Driver.hpp

  • DriverManager.hpp

  • Exception.hpp

  • jdbccompat.hpp

  • ParameterMetaData.hpp

  • PreparedStatement.hpp

  • ResultSet.hpp

  • ResultSetMetaData.hpp

  • Savepoint.hpp

  • SQLString.hpp

  • Statement.hpp

  • Types.hpp

  • Warning.hpp

Classes

MariaDB Connector/C++ implements many different classes.

Most C++ applications developed using MariaDB Connector/C++ will use some of the following classes:

Class

Description

sql::Connection

Establish a connection to MariaDB Enterprise. A Connection can be closed by calling close(), or there is an implicit close when using a smart pointer.

sql::DatabaseMetaData

Provides detailed information about the database metadata, such as database name, version, schemas, tables, columns, procedures, and support for various features.

sql::Driver

Implements the non-static connect() method, which is a connection method.

sql::DriverManager

Implements the static getConnection() method, which is a connection method.

sql::PreparedStatement

Execute a query that contains variable text. Prepared statements can be used to sanitize input. Therefore, using prepared statements reduces the risk of SQL injection attacks. A PreparedStatement can be closed by calling close(), or there is an implicit close when using a smart pointer. By default, the connector will use client-side prepared statements. To use server-side prepared statements, set the useServerPrepStmts optional connection parameter to true.

sql::ResultSet

Fetch query results. A ResultSet can be closed by calling close(), or there is an implicit close when using a smart pointer.

sql::ResultSetMetaData

Provides detailed information about a result set, such as schema name, table name, column names and types, and column attributes; whether a column is auto increment, and nullable.

sql::Statement

Execute a query that does not contain variable text. A Statement can be closed by calling close(), or there is an implicit close when using a smart pointer.