前言:
转载请附上连接,本帖原创请勿照抄。
QT连接MySQL实现增删改查目录
项目完整版下载地址:https://mp.csdn.net/console/upDetailed
1. 初始化SQL环境
1.1 pro文件添加SQL库
//在PRO文件内添加
QT += sql
1.2 打印驱动
//在main.cpp内添加打印驱动代码
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers(); //获取现在可用的数据库驱动
foreach(QString driver, drivers)
qDebug() << driver;
w.show();
return a.exec();
}
1.3 查看驱动
查看是否有QMYSQL驱动,没有的话参考我的另一篇博客:https://blog.csdn.net/qq_37529913/article/details/109850670
2. 连接数据库
//初始化变量
QSqlDatabase db;
QSqlQuery query;
//构造函数内调用connect_mysql
void MainWindow::connect_mysql()
{
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("mysql");
db.setUserName("root");
db.setPassword("root");
if (!db.open()) {
qDebug("Sql connect failed.");
qDebug() << db.lastError().text();
} else {
qDebug("Sql connected.");
}
}
3. 添加数据
// 使数据库支持中文
//query.exec("SET NAMES 'Latin1'");
QString qslname;
query=QSqlQuery(db);
//添加数据
QString sq="INSERT INTO db_mysql VALUES(0,'SY2020111917', 123, 'SY17', 60, 0)";
// 查询数据
//QString sq="select * from db_mysql";
if (query.exec(sq)) {
//qDebug("Sql connected.");
qDebug("添加成功");
} else {
//qDebug("Sql connect failed.");
qDebug("添加失败");
qDebug() << db.lastError().text();
}
4. 删除数据
// 使数据库支持中文
//query.exec("SET NAMES 'Latin1'");
QString qslname;
query=QSqlQuery(db);
//添加数据
//QString sq="INSERT INTO db_mysql VALUES(0,'SY2020111917', 123, 'SY17', 60, 0)";
//删除数据
QString sq="DELETE FROM db_mysql WHERE M_AID = 'SY2020111917'";
// 查询数据
//QString sq="select * from db_mysql";
if (query.exec(sq)) {
//qDebug("Sql connected.");
//qDebug("添加成功");
qDebug("删除成功");
} else {
//qDebug("Sql connect failed.");
//qDebug("添加失败");
qDebug("删除失败");
qDebug() << db.lastError().text();
}
5. 修改数据
QString qslname;
query=QSqlQuery(db);
QString sq="";
//添加数据
//sq="INSERT INTO db_mysql VALUES(0,'SY2020111917', 123, 'SY17', 60, 0)";
//删除数据
//sq="DELETE FROM db_mysql WHERE M_AID = 'SY2020111917'";
//修改数据
sq="UPDATE db_mysql SET M_NAME = 'bb' WHERE M_NAME = 'aa'";
// 查询数据
//QString sq="select * from db_mysql";
if (query.exec(sq)) {
//qDebug("Sql connected.");
//qDebug("添加成功");
//qDebug("删除成功");
qDebug("修改成功");
} else {
//qDebug("Sql connect failed.");
//qDebug("添加失败");
//qDebug("删除失败");
qDebug("修改失败");
}
6. 查询数据
query=QSqlQuery(db);
QString sq="";
//添加数据
//sq="INSERT INTO db_mysql VALUES(0,'SY2020111917', 123, 'SY17', 60, 0)";
//删除数据
//sq="DELETE FROM db_mysql WHERE M_AID = 'SY2020111917'";
//修改数据
//sq="UPDATE db_mysql SET M_NAME = 'bb' WHERE M_NAME = 'aa'";
// 查询数据
sq="select * from db_mysql";
if (query.exec(sq)) {
//qDebug("Sql connected.");
//qDebug("添加成功");
//qDebug("删除成功");
//qDebug("修改成功");
qDebug("查询成功");
} else {
//qDebug("Sql connect failed.");
//qDebug("添加失败");
//qDebug("删除失败");
//qDebug("修改失败");
qDebug("查询成功");
}
while (query.next()) {
qDebug() << QString::number(query.value(0).toInt());
qDebug() << query.value(1).toString();
qDebug() << QString::number(query.value(2).toInt());
qDebug() << query.value(3).toString();
qDebug() << QString::number(query.value(4).toInt());
qDebug() << QString::number(query.value(5).toInt());
}