Connessione a MariaDB in C++

Mattepuffo's logo
Connessione a MariaDB in C++

Connessione a MariaDB in C++

Mi sono voluto dilettare un pò con C++, ed ho visto che non hai fatto un test di connessione a MariaDB.

Quindi ve ne parlo in questo articolo.

La prima cosa da fare è installare il connettore; nel mio caso sto su Ubuntu:

$ sudo apt install libmysqlcppconn-dev

Dovete documentarvi in base all'OS che usate.

Qui sotto un esempio in cui mi connetto, aggiungo dei records e faccio una query:

#include <iostream>
#include <cppconn/driver.h>
#include <cppconn/connection.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>

int main()
{
    try
    {
        sql::Driver *driver = get_driver_instance();
        std::unique_ptr<sql::Connection> con(driver->connect("tcp://127.0.0.1:3306", "root", "9211"));
        con->setSchema("test");

        std::unique_ptr<sql::PreparedStatement> pstmt(con->prepareStatement("INSERT INTO utenti (email) VALUES (?)"));

        const char *emails[] = {
            "mario.rossi@example.com",
            "luca.bianchi@example.com",
            "anna.verdi@example.com"};

        for (const auto &email : emails)
        {
            pstmt->setString(1, email);
            pstmt->executeUpdate();
        }

        std::cout << "3 record inseriti con successo" << std::endl;

        std::unique_ptr<sql::Statement> stmt(con->createStatement());
        std::unique_ptr<sql::ResultSet> res(stmt->executeQuery("SELECT id, email FROM utenti"));

        std::cout << "Elenco utenti:" << std::endl;
        while (res->next())
        {
            std::cout << "ID: " << res->getInt("id")
                      << ", Email: " << res->getString("email") << std::endl;
        }
    }
    catch (sql::SQLException &e)
    {
        std::cerr << "Errore SQL: " << e.what() << std::endl;
    }

    return 0;
}

Ovviamente non faccio alcuni tipo controllo se esistono records, ecc.

Per la compilazione:

$ g++ main.cpp -o main -lmysqlcppconn && ./main

Anche qui dipende dall'OS che usate.

Enjoy!


Condividi

Commentami!