软件环境准备
链接:https://pan.baidu.com/s/1m0RFlTgzHhdKc4XJsxgpRQ?pwd=op3b
提取码:op3b
注意事项:QT编译套件位数需要同数据库位数相同,都是32位或者都是64位
工程文件
添加sql模块
头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSqlDatabase>
#include <QDebug>
#include <QSqlError>
#include <QSqlQuery>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
QStringList list = QSqlDatabase::drivers();
qDebug() << list;
db.setHostName("localhost");//localhost等同于本机IP的127.0.0.1
db.setPort(3306);
db.setDatabaseName("qttest");
db.setUserName("root");
db.setPassword("........");
if(!db.open())
{
qDebug() << "失败原因" << db.lastError().text();
}
else
{
qDebug() << "连接成功";
}
QSqlQuery query;
//往数据库添加数据需要建立一个事务
QString sql = "insert into student values('狗七', 21)";
db.transaction();
bool flag = query.exec(sql);
if(flag)
{
db.commit();
}
else
{
db.rollback();
}
sql = "select * from student";
query.exec(sql);
while(query.next())
{
//打印数据库内容
//value里面可以是数组对应的数字,也可以是具体某个字符
qDebug() << query.value(0).toString()
<< query.value("age").toUInt();
}
db.close();
}
MainWindow::~MainWindow()
{
delete ui;
}
Navicat
查看数据库工具,比较方便
补充:
需要把MySQL的库和驱动文件添加到QT中