QT连接Mysql后的简单操作(增删改查)


连接数据库

首先要连接自己在电脑上安装的MySql的数据库(这个是最难也是最重要的一步,万事起步难),连接上了之后的Sql语句就会就会非常简单了,连接数据库可以参考这篇博客(注意在连接时会有可能会有很多报错信息,但是只要按照这个操作来,一步一步操作应该没有问题。)

Qt编译MySQL数据库驱动_焕小谢的博客-CSDN博客_qt编译mysql驱动

注意在操作完这些操作后不要直接点构建,

要点重新构建所有项目(我因为这个问题弄了好久😭😭😭)。

增删改查(MySql)

首先在xxx.pro文件中加入sql模块。

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QSqlDatabase>
#include <QStringList>
#include <QSqlError>
#include <QSqlQuery>
#include <QMessageBox>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 1. 添加一个数据库实例
    QStringList ls = QSqlDatabase::drivers();
    qDebug() << ls;

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    // 2. 得到实例对象之后需要初始化连接信息
    //    -- 服务器的IP, 端口, 数据库名, 用户名, 密码
    db.setHostName("localhost");
    db.setPort(3306);   // 如果使用的是默认端口, 可以不调用该函数
    db.setDatabaseName("student");//这是我自己建的表的名字,要看自己在DBMS上面建了什么表。
    db.setUserName("root");//root用户
    db.setPassword("123456");//密码

    // 3. 连接数据库
    bool bl = db.open();
    if(!bl)
    {
        qDebug() << db.lastError().text();
        return;
    }
    else
    {
//        qDebug() << "数据库连接成功了...";
        QMessageBox::information(this, "succeed", "hahah");
    }

    QSqlQuery query;
    // 4. 插入数据
//    QString sql = "insert into dept values(23, '火影忍者', '东京')";
//    QString sql = "select * from student";
    // 开启事务
//    db.transaction();
//    bool flag = query.exec(sql);
//    if(flag)
//    {
//       db.commit();
//    }
//    else
//    {
//       db.rollback();
//    }

//    // 5. 查询数据表 - dept
//    query.exec("select * from score");
    // 遍历结果集
    while(query.next())
    {
        // 从当前记录中取出各个字段的值
//        qDebug() << query.value(0).toString()
//                << query.value(1).toString()
//                << query.value("dname").toString()
//                << query.value("loc").toString();
        QString sno = query.value(0).toString();
        QString cno = query.value(1).toString();
        QString tno = query.value(2).toString();
        double grade = query.value(3).toDouble();
        qDebug()<<sno<<" "<<cno<<" "<<tno<<" "<<grade;
    }
    db.close();

}

Widget::~Widget()
{
    delete ui;
}

增删改查其实就利用这个模板来操作了,这个时候就要看你的MqSql的功底了。

query.exec("insert into student values(......)");//增
query.exec("DELETE FROM table_name [WHERE Clause]");//删除
query.exec("UPDATE table_name SET field1=new-value1, field2=new-value2[WHERE Clause]");//更新
query.exec("select * from score");//查询

文章作者: AllenMirac
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AllenMirac !
  目录