Table of Contents
1. Install the driver
(1) Installation
(2) Verify whether the driver is installed successfully
2. Using MySQL database
(1) Single statement execution
(2) Multiple statement execution
(3) Batch processing operation
Home Database Mysql Tutorial How to operate MySQL database in Qt

How to operate MySQL database in Qt

Jun 03, 2023 am 08:52 AM
mysql qt

    1. Install the driver

    (1) Installation

    To operate the MySQL database in Qt, you must first install the mysql driver file. Just copy the libmusql.dll file under MySQL to the bin folder under the Qt installation path.

    How to operate MySQL database in Qt

    Paste the libmysql.dll file directly into this folder.

    How to operate MySQL database in Qt

    (2) Verify whether the driver is installed successfully

    After the copy is successful, test whether the driver is installed successfully, create a new file, and select the Qt designer interface class, and all subsequent operations can be kept as default.

    How to operate MySQL database in Qt

    Introduce the following libraries into the newly generated .cpp file

    #include <QSqlDatabase>
    #include <QDebug>
    #include <QMessageBox>  
    #include <QSqlError>    
    #include <QString>
    #include <QSqlQuery>
    #include <QVariantList>
    Copy after login

    Insert the following code in the constructor, and then click Run, if no warning window pops up It means the installation is successful, otherwise it fails.

    //添加一个数据库
        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());
        }
    Copy after login

    2. Using MySQL database

    (1) Single statement execution

    First create a QString object sql, write the statement to be executed in sql, and then create the QSqlQuery class The object query calls its exec() function to execute the code in sql.

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

    (2) Multiple statement execution

    In sql, multiple statements can be executed at the same time by separating each statement with a semicolon. The following operations are performed to add, delete and update the table at the same time.

        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语句
    Copy after login

    (3) Batch processing operation

    Method 1: addBindValue()

    Enter the statement you want to execute in query.prepare(), where the to-be-entered The value is replaced by "?", where "?" is the wildcard character. When adding the values ​​you want to set later, you can use idList, nameList, ageList and mathList. To avoid errors, please use addBindValue() in the order of id, name, age, and math to bind values.

        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();
    Copy after login

    Method 2: bindValue()

    Directly use a custom name to complete the binding. At this time, the binding order can be decided by yourself.

    	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();
    Copy after login

    (4) Query

    The table to be queried is:

    How to operate MySQL database in Qt

    The value after value can be an index or a column name. After taking it out, it needs to be converted into the corresponding data type.

    	//查询操作
        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();   
        }
    Copy after login

    Query results:

    How to operate MySQL database in Qt

    The above is the detailed content of How to operate MySQL database in Qt. For more information, please follow other related articles on the PHP Chinese website!

    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

    Hot Article Tags

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment

    Dreamweaver CS6

    Dreamweaver CS6

    Visual web development tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    PHP's big data structure processing skills PHP's big data structure processing skills May 08, 2024 am 10:24 AM

    PHP's big data structure processing skills

    How to optimize MySQL query performance in PHP? How to optimize MySQL query performance in PHP? Jun 03, 2024 pm 08:11 PM

    How to optimize MySQL query performance in PHP?

    How to use MySQL backup and restore in PHP? How to use MySQL backup and restore in PHP? Jun 03, 2024 pm 12:19 PM

    How to use MySQL backup and restore in PHP?

    How to insert data into a MySQL table using PHP? How to insert data into a MySQL table using PHP? Jun 02, 2024 pm 02:26 PM

    How to insert data into a MySQL table using PHP?

    What are the application scenarios of Java enumeration types in databases? What are the application scenarios of Java enumeration types in databases? May 05, 2024 am 09:06 AM

    What are the application scenarios of Java enumeration types in databases?

    How to fix mysql_native_password not loaded errors on MySQL 8.4 How to fix mysql_native_password not loaded errors on MySQL 8.4 Dec 09, 2024 am 11:42 AM

    How to fix mysql_native_password not loaded errors on MySQL 8.4

    How to use MySQL stored procedures in PHP? How to use MySQL stored procedures in PHP? Jun 02, 2024 pm 02:13 PM

    How to use MySQL stored procedures in PHP?

    Performance optimization strategies for PHP array paging Performance optimization strategies for PHP array paging May 02, 2024 am 09:27 AM

    Performance optimization strategies for PHP array paging

    See all articles