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!
c++ mariadb database
Commentami!