Maison >base de données >tutoriel mysql >Comment faire fonctionner la base de données MySQL dans Qt

Comment faire fonctionner la base de données MySQL dans Qt

PHPz
PHPzavant
2023-06-03 08:52:312088parcourir

    1. Installez le pilote

    (1) Installez

    Pour faire fonctionner la base de données MySQL dans Qt, vous devez d'abord installer le fichier du pilote mysql et copier le fichier libmusql.dll sous MySQL dans le dossier bin sous Qt chemin d'installation. Téléchargez-le simplement.

    Comment faire fonctionner la base de données MySQL dans Qt

    Collez le fichier libmysql.dll directement dans ce dossier.

    Comment faire fonctionner la base de données MySQL dans Qt

    (2) Vérifiez si le pilote est installé avec succès

    Une fois la copie réussie, testez si le pilote est installé avec succès. Créez un nouveau fichier, sélectionnez la classe d'interface Qt Designer et conservez la valeur par défaut pour les opérations ultérieures. .

    Comment faire fonctionner la base de données MySQL dans Qt

    Introduisez les bibliothèques suivantes dans le fichier .cpp nouvellement généré

    #include <QSqlDatabase>
    #include <QDebug>
    #include <QMessageBox>  
    #include <QSqlError>    
    #include <QString>
    #include <QSqlQuery>
    #include <QVariantList>

    Insérez le code suivant dans le constructeur, puis cliquez sur Exécuter. Si aucune fenêtre d'avertissement n'apparaît, l'installation est réussie, sinon elle a échoué.

    //添加一个数据库
        QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");    //括号内要写出数据库的类型
        //设置数据库
        db.setHostName("127.0.0.1"); //设置数据库的主机ip
        //设置数据库的用户名
        db.setUserName("root");
        //设置数据库的密码
        db.setPassword("123456");    //这个就是安装MySQL时设置的密码
        //设置数据库的名字
        db.setDatabaseName("aaa2");
        //打开数据库(已经安装过mysql驱动了)
        if(db.open()==false){
            QMessageBox::warning(this,"waring",db.lastError().text());
        }

    2. Utilisation de la base de données MySQL

    (1) Exécution d'une seule instruction

    Créez d'abord un objet QString SQL, écrivez l'instruction à exécuter en SQL, puis créez une requête objet de la classe QSqlQuery et appelez son exec() fonction pour exécuter le code SQL dans .

        QString sql = "insert into student (id,name,age,math) values (1,&#39;kaw&#39;,20,97)";	//书写想要执行的语句
        QSqlQuery query;	//创建一个QSqlQuery对象
        query.exec(sql);    //执行mysql语句

    (2) Exécution de plusieurs instructions

    En SQL, plusieurs instructions peuvent être exécutées en même temps en séparant chaque instruction par un point-virgule. Les opérations suivantes sont effectuées pour ajouter, supprimer et mettre à jour la table en même temps.

        QString sql = "insert into student (id,name,age,math) values (13,&#39;kaw&#39;,20,97);delete from student where id=2;update student set name=&#39;sdd&#39;,math=100 where id=10;";
        QSqlQuery query;	//创建一个QSqlQuery对象
        query.exec(sql);    //执行mysql语句

    (3) Opération par lots

    Méthode 1 : addBindValue()

    Entrez l'instruction que vous souhaitez exécuter dans query.prepare(), où la valeur à saisir est remplacée par "?", ici "?" un caractère générique. Lorsque vous ajoutez les valeurs que vous souhaitez définir ultérieurement, vous pouvez utiliser idList, nameList, ageList et mathList. Pour éviter les erreurs, veuillez utiliser addBindValue() dans l'ordre de l'identifiant, du nom, de l'âge et des mathématiques pour lier les valeurs.

        QSqlQuery query;
        query.prepare("insert into student (id,name,age,math) values (?,?,?,?)");	//书写语句模型
        //添加绑定数据
        QVariantList idList;    //创建一个id列表
        idList << 15<<16<<17;
        query.addBindValue(idList); //完成第一个?的绑定
        QVariantList nameList;
        nameList << "ddd"<<"eee"<<"jjj";
        query.addBindValue(nameList);   //完成第二个?的绑定
        QVariantList ageList;
        ageList << 25<<24<<23;
        query.addBindValue(ageList);    //完成第三个?的绑定
        QVariantList mathList;
        mathList << 90<<89<<90;
        query.addBindValue(mathList);   //完成第四个?的绑定
        //执行批处理
        query.execBatch();

    Méthode 2 : bindValue()

    Utilisez directement un nom personnalisé pour terminer la liaison À ce stade, l'ordre de liaison peut être décidé par vous-même.

    	QSqlQuery query;
        query.prepare("insert into student (id,name,age,math) values (:id,:name,:age,:math)");  //:id之类的名字时自定义的 自己方便就好
        //添加绑定数据
        QVariantList idList;    //创建一个id列表
        idList << 18<<19<<20;
        query.bindValue(":id",idList); //完成:id的绑定
        QVariantList nameList;
        nameList << "ddd"<<"eee"<<"jjj";
        query.bindValue(":name",nameList);   //完成:name的绑定
        QVariantList ageList;
        ageList << 25<<24<<23;
        query.bindValue(":age",ageList);    //完成:age的绑定
        QVariantList mathList;
        mathList << 90<<89<<90;
        query.bindValue(":math",mathList);   //完成:math的绑定
        //执行批处理
        query.execBatch();

    (4) Requête

    La table à interroger est :

    Comment faire fonctionner la base de données MySQL dans Qt

    La valeur après valeur peut être un index ou un nom de colonne. Après l'avoir retiré, il doit être converti dans le type de données correspondant.

    	//查询操作
        QSqlQuery query;
        query.exec("select * from student");
        while(query.next()){
            qDebug()<<query.value(0).toInt()
                 <<query.value("name").toString().toUtf8().data()
                <<query.value(2).toInt()
               <<query.value(3).toInt();   
        }

    Résultats de la requête :

    Comment faire fonctionner la base de données MySQL dans Qt

    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:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer