Esercizi Connessione MySQL C++
- Esercizio 1: Connessione a MySQL usando la libreria MySQL Connector/C++ (metodo sequenziale)
- Esercizio 2: Connessione a MySQL usando la libreria MySQL Connector/C++ (OOP)
- Esercizio 3: Connessione a MySQL usando la libreria MySQL C API (metodo sequenziale)
- Esercizio 4: Connessione a MySQL usando la libreria MySQL C API (OOP)
- Esercizio 5: Connessione a MySQL usando la libreria SOCI (metodo sequenziale)
- Esercizio 6: Connessione a MySQL usando la libreria SOCI (OOP)
Ecco degli esercizi semplici con soluzione per praticare la connessione a un database MySQL in C++ utilizzando diverse librerie.
Esercizio 1: Connessione a MySQL usando la libreria MySQL Connector/C++ (metodo sequenziale)
Stabilire una connessione a MySQL e stampare il nome del database.
#include <mysql_driver.h>#include <mysql_connection.h>#include <cppconn/statement.h>#include <cppconn/resultset.h>#include <iostream>
int main() { sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance(); sql::Connection* con = driver->connect("tcp://127.0.0.1:3306", "root", "password"); con->setSchema("test_db");
std::cout << "Connesso al database: " << con->getSchema() << std::endl;
delete con; return 0;}
Esercizio 2: Connessione a MySQL usando la libreria MySQL Connector/C++ (OOP)
Creare una classe per gestire la connessione a MySQL e stampare il nome del database.
#include <mysql_driver.h>#include <mysql_connection.h>#include <cppconn/statement.h>#include <cppconn/resultset.h>#include <iostream>
class MySQLClient {private: sql::mysql::MySQL_Driver* driver; sql::Connection* con;public: MySQLClient(const std::string& host, const std::string& user, const std::string& pass, const std::string& db) { driver = sql::mysql::get_mysql_driver_instance(); con = driver->connect(host, user, pass); con->setSchema(db); }
~MySQLClient() { delete con; }
void stampaNomeDatabase() { std::cout << "Connesso al database: " << con->getSchema() << std::endl; }};
int main() { MySQLClient client("tcp://127.0.0.1:3306", "root", "password", "test_db"); client.stampaNomeDatabase(); return 0;}
Esercizio 3: Connessione a MySQL usando la libreria MySQL C API (metodo sequenziale)
Stabilire una connessione a MySQL e stampare il nome del database usando MySQL C API.
#include <mysql/mysql.h>#include <iostream>
int main() { MYSQL* conn; conn = mysql_init(nullptr);
if (conn == nullptr) { std::cerr << "mysql_init() failed\n"; return EXIT_FAILURE; }
if (mysql_real_connect(conn, "localhost", "root", "password", "test_db", 0, nullptr, 0) == nullptr) { std::cerr << "mysql_real_connect() failed\n"; mysql_close(conn); return EXIT_FAILURE; }
std::cout << "Connesso al database: " << mysql_get_server_info(conn) << std::endl;
mysql_close(conn); return EXIT_SUCCESS;}
Esercizio 4: Connessione a MySQL usando la libreria MySQL C API (OOP)
Creare una classe per gestire la connessione a MySQL e stampare il nome del database usando MySQL C API.
#include <mysql/mysql.h>#include <iostream>
class MySQLClient {private: MYSQL* conn;public: MySQLClient(const std::string& host, const std::string& user, const std::string& pass, const std::string& db) { conn = mysql_init(nullptr); if (conn == nullptr) { throw std::runtime_error("mysql_init() failed"); } if (mysql_real_connect(conn, host.c_str(), user.c_str(), pass.c_str(), db.c_str(), 0, nullptr, 0) == nullptr) { mysql_close(conn); throw std::runtime_error("mysql_real_connect() failed"); } }
~MySQLClient() { mysql_close(conn); }
void stampaNomeDatabase() { std::cout << "Connesso al database: " << mysql_get_server_info(conn) << std::endl; }};
int main() { try { MySQLClient client("localhost", "root", "password", "test_db"); client.stampaNomeDatabase(); } catch (const std::exception& e) { std::cerr << e.what() << std::endl; } return 0;}
Esercizio 5: Connessione a MySQL usando la libreria SOCI (metodo sequenziale)
Stabilire una connessione a MySQL e stampare il nome del database usando SOCI.
#include <soci/soci.h>#include <soci/mysql/soci-mysql.h>#include <iostream>
int main() { try { soci::session sql(soci::mysql, "db=test_db user=root password='password' host=localhost"); std::cout << "Connesso al database: test_db" << std::endl; } catch (const std::exception& e) { std::cerr << "Errore: " << e.what() << std::endl; } return 0;}
Esercizio 6: Connessione a MySQL usando la libreria SOCI (OOP)
Creare una classe per gestire la connessione a MySQL e stampare il nome del database usando SOCI.
#include <soci/soci.h>#include <soci/mysql/soci-mysql.h>#include <iostream>
class MySQLClient {private: soci::session sql;public: MySQLClient(const std::string& connection_string) : sql(soci::mysql, connection_string) {}
void stampaNomeDatabase(const std::string& db_name) { std::cout << "Connesso al database: " << db_name << std::endl; }};
int main() { try { MySQLClient client("db=test_db user=root password='password' host=localhost"); client.stampaNomeDatabase("test_db"); } catch (const std::exception& e) { std::cerr << "Errore: " << e.what() << std::endl; } return 0;}