Maison  >  Article  >  développement back-end  >  Utilisation de la base de données MySQL en C++ et ses compétences applicatives

Utilisation de la base de données MySQL en C++ et ses compétences applicatives

王林
王林original
2023-08-22 17:18:301674parcourir

Utilisation de la base de données MySQL en C++ et ses compétences applicatives

MySQL est un système de gestion de base de données open source populaire qui peut être utilisé pour stocker et gérer différents types de données. Cet article présentera comment utiliser la base de données MySQL en C++ et quelques compétences d'application.

Installer le connecteur MySQL C++

Vous devez d'abord installer le connecteur MySQL C++. Vous pouvez télécharger le connecteur MySQL C++ correspondant à la version du système d'exploitation depuis le site officiel de MySQL (http://dev.mysql.com/downloads/connector/cpp/). Après l'installation sous Windows, ajoutez les dossiers include et lib sous le chemin d'installation au répertoire d'inclusion supplémentaire et au répertoire de bibliothèque supplémentaire du projet Visual Studio.

Connexion à la base de données MySQL

Pour vous connecter à la base de données MySQL, vous devez connaître les paramètres suivants :

  • Nom d'hôte : Le nom d'hôte où se trouve le serveur MySQL.
  • Nom d'utilisateur et mot de passe : Nom d'utilisateur et mot de passe utilisés lors de la connexion à la base de données.
  • Nom de la base de données : Le nom de la base de données à laquelle se connecter.

Utilisez le code suivant pour vous connecter à la base de données MySQL :

#include <iostream>
#include <mysql_connection.h>
#include <mysql_driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>

using namespace std;

int main() {
    sql::Driver* driver;
    sql::Connection* con;
    sql::Statement* stmt;
    sql::ResultSet* res;

    driver = get_driver_instance();
    con = driver->connect("tcp://localhost:3306", "username", "password");
    stmt = con->createStatement();
    stmt->execute("USE database_name");

    // 这里可以执行需要的操作

    delete res;
    delete stmt;
    delete con;
    return 0;
}

Où, "tcp://localhost:3306" représente le port par défaut pour se connecter au serveur MySQL local, "nom d'utilisateur" et "mot de passe" sont le nom d'utilisateur et le mot de passe utilisé lors de la connexion à la base de données, "nom_base de données" est le nom de la base de données à laquelle se connecter.

Exécuter des requêtes SQL de base

Après la connexion à la base de données MySQL, nous pouvons utiliser des requêtes SQL pour lire et écrire des données. Voici quelques exemples de requêtes SQL de base :

Query

res = stmt->executeQuery("SELECT * FROM table_name");
while (res->next()) {
    cout << res->getString("column_name") << endl;
}

Insert

stmt->execute("INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')");

Update

stmt->execute("UPDATE table_name SET column1='new_value' WHERE column2='value_to_update'");

Delete

stmt->execute("DELETE FROM table_name WHERE column='value_to_delete'");

Notez qu'avant de supprimer ou de mettre à jour des données, vous devez d'abord interroger à l'aide d'une instruction SELECT pour garantir que les données que vous souhaitez supprimer ou une mise à jour existe.

Traitement des résultats de la requête

Après avoir utiliséexecuteQuery pour exécuter une requête SELECT, vous pouvez utiliser l'objet ResultSet pour obtenir l'ensemble de résultats. La classe ResultSet fournit différentes méthodes pour obtenir différents types de données, en fonction du type de données de la colonne que vous souhaitez obtenir. Voici quelques exemples :

res = stmt->executeQuery("SELECT * FROM table_name");

//获取int类型数据
int c1 = res->getInt("column1");

//获取string类型数据
string c2 = res->getString("column2");

//获取double类型的数据
double c3 = res->getDouble("column3");

Vous pouvez utiliser une boucle while pour lire toutes les données du jeu de résultats :

while (res->next()) {
    int c1 = res->getInt("column1");
    string c2 = res->getString("column2");
    double c3 = res->getDouble("column3");
    //做一些任务
}

Gestion des erreurs MySQL

Lors de l'utilisation de MySQL en C++, les erreurs peuvent généralement être gérées par :

try {
    //需要执行的语句
} catch (sql::SQLException& e) {
    //发生错误时的处理
    cout << "MySQL Error: " << e.what() << endl;
}

Dans un try block Exécutez l'instruction qui peut lancer SQLException dans le bloc catch, puis gérez l'erreur dans le bloc catch. Le message d'erreur peut être obtenu en utilisant e.what() dans le bloc catch.

Utilisation des transactions

La base de données MySQL prend en charge les transactions, qui peuvent effectuer un ensemble d'opérations comme une seule unité logique. Si l'une de ces opérations échoue, toutes les opérations sont rétablies à l'état dans lequel elles se trouvaient avant le début de la transaction. Comment utiliser les transactions lorsque :

sql::Savepoint* savepoint = con->setSavepoint();
try {
    stmt->execute("UPDATE table_name SET column1='new_value' WHERE column2='value_to_update'");
    stmt->execute("INSERT INTO table_name (column1, column2) VALUES ('value', 'value')");
    con->commit();
} catch (sql::SQLException& e) {
    con->rollback(savepoint);
}

Avant d'exécuter des instructions qui doivent être exploitées en tant que transactions, définissez d'abord un point de sauvegarde (savepoint) sur l'objet de connexion (con). Une fois toutes les instructions exécutées avec succès, utilisez la méthode commit() de l'objet de connexion pour valider la transaction. Si une instruction ne parvient pas à s'exécuter, utilisez la méthode rollback(savepoint) de l'objet de connexion pour annuler et annuler toutes les modifications.

Conclusion

L'utilisation d'une base de données MySQL en C++ vous permet non seulement de stocker et de récupérer des données, mais vous pouvez également utiliser des transactions et la gestion des erreurs pour garantir l'intégrité et l'exactitude des données. Cet article explique comment se connecter à une base de données MySQL, exécuter des requêtes SQL de base, traiter les résultats des requêtes, gérer les erreurs MySQL et utiliser des transactions. J'espère que ces conseils seront utiles aux développeurs C++ travaillant avec la base de données MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn