Maison > base de données > tutoriel mysql > le corps du texte

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

PHPz
Libérer: 2023-06-03 08:52:31
avant
2075 Les gens l'ont consulté

    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>
    Copier après la connexion

    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());
        }
    Copier après la connexion

    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语句
    Copier après la connexion

    (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语句
    Copier après la connexion

    (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();
    Copier après la connexion

    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();
    Copier après la connexion

    (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();   
        }
    Copier après la connexion

    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!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    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
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal