DML with MariaDB Connector/C++
DML Operations
Code Example: INSERT, UPDATE, DELETE
// Includes
#include <iostream>
#include <mariadb/conncpp.hpp>
// 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 variables to prepared statement parameters
// Note that the index starts at 1--not 0
stmnt->setString(1, first_name);
stmnt->setString(2, last_name);
stmnt->setString(3, email);
// Execute Statement
stmnt->executeUpdate();
}
// 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
// The URL or TCP connection string format is
// ``jdbc:mariadb://host:port/database``.
sql::SQLString url("jdbc:mariadb://192.0.2.1:3306/test");
// Use a properties map for the other connection options
sql::Properties properties({
{"user", "db_user"},
{"password", "db_user_password"},
});
// Establish Connection
// Use a smart pointer for extra safety
std::unique_ptr<sql::Connection> conn(driver->connect(url, properties));
// Created a PreparedStatement
// Use a smart pointer for extra safety
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");
// Close Connection
conn->close();
}
// Catch Exceptions
catch (sql::SQLException& e) {
std::cerr << "Error Connecting to the database: "
<< e.what() << std::endl;
// Exit (Failed)
return 1;
}
// Exit (Success)
return 0;
}Code Example: SELECT
Last updated
Was this helpful?

