Qt数据基本操作(基于mysql)
创始人
2025-05-30 01:55:23
0

Qt数据基本操作

  • 基本操作
    • 1.检查你当前现有的数据库驱动里面有没有QMYSQL
    • 2.连接你的数据库
    • 3.判断打开数据库是否成功
    • 4.获取数据库中某个表的内容信息
    • 5.sql事务操作(只有在写操作时才有必要进行事务操作)
    • 6.关闭数据库
  • 完整代码
    • DBTest.pro
    • mainwindow.h
    • main.cpp
    • mainwindow.cpp
  • 执行结果:

基本操作

1.检查你当前现有的数据库驱动里面有没有QMYSQL

QStringList list = QSqlDatabase::drivers();
qDebug() << list;//打印支持的sql驱动

2.连接你的数据库

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setDatabaseName("f");				// 数据库名称db.setHostName("localhost");			// 主机名db.setUserName("你的用户名");			// 数据库,用户名db.setPassword("你的密码");				// 数据库,密码db.setPort(3306);						// 数据库,端口

3.判断打开数据库是否成功

//判断打开数据库是否成功if(!db.open()){qDebug()<<"QMYSQL link fail's cause:"<qDebug()<<"link success!!!";}

4.获取数据库中某个表的内容信息

f数据库中的fruit表为例
在这里插入图片描述

//获取数据库中某个表的内容信息QSqlQuery query;QString sql = "select * from fruit;";//在当前这个库中执行sql语句query.exec(sql);while(query.next()){//取出当前记录中的字段qDebug()<

5.sql事务操作(只有在写操作时才有必要进行事务操作)

//sql事务操作(只有在写操作时才有必要进行事务操作)sql = "insert into fruit values(6,'芒果',5.6,'kg');";db.transaction();//创建事务bool flag = query.exec(sql);//exec()会执行SQL语句,如果是select语句,则执行结果会放在query中if(flag)//如果sql执行成功就,{db.commit();//提交事务}else{//如果sql执行失败就,db.rollback();//事务回滚}

6.关闭数据库

//数据库操作结束后,记得关闭db.close();

完整代码

在这里插入图片描述

DBTest.pro

QT       += core gui sql

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

main.cpp

#include "mainwindow.h"#include int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include 
#include 
#include MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QStringList list = QSqlDatabase::drivers();qDebug() << list;//打印支持的sql驱动QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setDatabaseName("f");				// 数据库名称db.setHostName("localhost");			// 主机名db.setUserName("你的用户名");			// 数据库,用户名db.setPassword("你的密码");				// 数据库,密码db.setPort(3306);						// 数据库,端口//判断打开数据库是否成功if(!db.open()){qDebug()<<"QMYSQL link fail's cause:"<qDebug()<<"link success!!!";}//获取数据库中某个表的内容信息QSqlQuery query;QString sql = "select * from fruit;";//在当前这个库中执行sql语句query.exec(sql);while(query.next()){//取出当前记录中的字段qDebug()<db.commit();//提交事务}else{//如果sql执行失败就,db.rollback();//事务回滚}//再查询一次sql="select * from fruit;";query.exec(sql);while(query.next()){//取出当前记录中的字段qDebug()<delete ui;
}

执行结果:

("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
link success!!!
1 : "苹果" , 5.5 : "kg"
2 : "橘子" , 6.5 : "kg"
3 : "榴莲" , 9.6 : "kg"
4 : "菠萝" , 5.5 : "kg"
5 : "荔枝" , 9.6 : "kg"
=================
1 : "苹果" , 5.5 : "kg"
2 : "橘子" , 6.5 : "kg"
3 : "榴莲" , 9.6 : "kg"
4 : "菠萝" , 5.5 : "kg"
5 : "荔枝" , 9.6 : "kg"
6 : "芒果" , 5.6 : "kg"

在这里插入图片描述

相关内容

热门资讯

警惕!“新增房东税”“养老金要... 税海涛声按语 近期,网络谣言颇多,其中不乏涉税的内容,如“房地产税已经完成立法”就是热炒的谣言之一。...
建立标准共识,为工伤认定打好制... 11月20日,人力资源和社会保障部对外发布《关于执行若干问题的意见(三)》(以下简称《意见(三)》)...
商用车智能化闯关:成本、法规与... 记者 周信 “如果我们省不掉人,只是减轻一点疲劳,意义、价值并不是那么大。”11月21日,在由电动汽...
“潜水手表不能潜水”风波再起,... 近日,一场由用户投诉引发的“小米潜水手表”争议持续引发网友关注。事情起因是一名网友发视频表示潜水第4...
金龙鱼子公司陷18亿元纠纷 一笔18.81亿元的共同退赔责任,一场关于合同诈骗罪的刑事官司,让千亿市值的粮油巨头金龙鱼下属子公司...
“哥哥再不发工资,我又要挨饿啦... “哥哥再不发工资,我又要挨饿啦。” 动听的网名、深情款款的话语,让你深陷“甜蜜陷阱”的“萌妹子”可能...
有矛盾纠纷找综治中心 “一站式... 长沙晚报掌上长沙11月22日讯(全媒体记者 田也 通讯员 湛焱)矛盾纠纷无处调解?家长里短憋在心里?...
穆某(17岁)、李某(18岁)... 11月20日,最高人民法院发布涉未成年人网络保护典型案例,其中包括:被告人李某(18周岁)、穆某(1...
G20宣言破例首日表决,压倒性... 【文/观察者网 阮佳琪】 当地时间11月22日至23日,二十国集团(G20)领导人第二十次峰会在南...
但斌发微博晒东方港湾海外基金排... 红星资本局11月22日消息,今日,深圳东方港湾投资管理股份有限公司(以下简称“东方港湾”)董事长但斌...