MariaDB Connector C++ Now RC
MariaDB Connector/C++ is now a release candidate (RC). C++ is known for its efficiency, versatility and extensibility, and it is often used in industries like fintech where applications require predictable concurrency and latency. Now, C++ developers can use the native MariaDB Connector/C++ to connect their applications to MariaDB Server on premises and in the cloud on MariaDB SkySQL.
MariaDB Connector/C++ is available from the MariaDB Download page (choose “C++ connector”).
MariaDB Enterprise Documentation includes instructions for installing and using Connector/C++.
MariaDB Connector/C++ is a release candidate (RC) release. It is not recommended for production usage.
MariaDB works closely with application developers and DBAs to ensure our Connectors meet requirements. We hope that you’ll try out this new connector, and welcome your feedback through Jira, where open issues can be seen and new issues can be reported.
Since C++ doesn’t have a standard API for database access, the MariaDB Connector/C++ implements a custom C++ version of Java’s JDBC API.
Example
Create a database test
and a table contacts
to test basic operations:
CREATE DATABASE IF NOT EXISTS test; CREATE TABLE test.contacts ( id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(25), last_name VARCHAR(25), email VARCHAR(100)) ENGINE=InnoDB;
Create a user db_user
that is to connect to MariaDB:
CREATE USER IF NOT EXISTS db_user@localhost IDENTIFIED BY 'db_user_password'; GRANT ALL PRIVILEGES ON *.* TO db_user@localhost WITH GRANT OPTION;
This sample code adds data to the test.contacts
table:
// Includes #include<iostream> #include<mariadbcpp/ConnCpp.h> // Function to Add Contact void addContact(std::shared_ptr<sql::PreparedStatement> &stmnt, sql::SQLString first_name, sql::SQLString last_name, sql::SQLString email) { try { // Bind Values stmnt->setString(1, first_name); stmnt->setString(2, last_name); stmnt->setString(3, email); // Execute Statement stmnt->execute(); } // Handle Exceptions catch (sql::SQLException &e) { std::cerr << "Error adding contact to database: " << e.what() << std::endl; } } // Main Process int main(int argc, char **argv) { try { // Instantiate Driver sql::Driver* driver = sql::mariadb::get_driver_instance(); // Configure Connection sql::SQLString url("jdbc:mariadb://localhost:3306/test"); sql::Properties properties({{"user", "db_user"}, {"password", "db_user_password"}}); // Establish Connection std::unique_ptr<sql::Connection> conn(driver->connect(url, properties)); // Prepare Statement std::shared_ptr<sql::PreparedStatement> stmnt(conn->prepareStatement("INSERT INTO test.contacts(first_name, last_name, email) VALUES (?, ?, ?)")); // Use prepared statement to add data addContact(stmnt, "John", "Smith", "john.smith@example.com"); } // Catch Exceptions catch (sql::SQLException &e) { std::cerr << "Error Connecting to MariaDB Platform: " << e.what() << std::endl; // Exit (Failed) return 1; } // Exit (Success) return 0; }
After running the C++ program to add data, run a SQL query in MariaDB CLI to verify that data has been added. Example output:
SELECT * from test.contacts; +----+------------+-----------+------------------------+ | id | first_name | last_name | email | +----+------------+-----------+------------------------+ | 1 | John | Smith | john.smith@example.com | +----+------------+-----------+------------------------+ 1 row in set (0.000 sec)
Ready to get started? See the Connector/C++ Documentation for install instructions and more complete usage examples.