qt mysql增删改查
时间: 2023-09-15 08:18:59 浏览: 79
Qt 提供了访问 MySQL 数据库的 API,可以通过这些 API 实现 MySQL 数据库的增删改查操作。下面是一个简单的示例代码,演示了如何在 Qt 中连接 MySQL 数据库,并进行增删改查操作。
首先需要在 Qt 项目中添加 `QT += sql` 配置,以使能 Qt 的 SQL 模块。
```cpp
#include <QtSql>
#include <QDebug>
int main()
{
// 创建 MySQL 数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("testdb");
db.setUserName("root");
db.setPassword("password");
// 打开数据库
if (!db.open()) {
qDebug() << "Failed to connect to database!";
return -1;
}
// 执行插入操作
QSqlQuery query(db);
query.prepare("INSERT INTO student(name, age) VALUES(:name, :age)");
query.bindValue(":name", "Tom");
query.bindValue(":age", 18);
if (!query.exec()) {
qDebug() << "Failed to insert data!";
return -1;
}
// 执行查询操作
if (query.exec("SELECT * FROM student")) {
while (query.next()) {
QString name = query.value("name").toString();
int age = query.value("age").toInt();
qDebug() << name << age;
}
} else {
qDebug() << "Failed to query data!";
return -1;
}
// 执行更新操作
query.prepare("UPDATE student SET age = :age WHERE name = :name");
query.bindValue(":name", "Tom");
query.bindValue(":age", 20);
if (!query.exec()) {
qDebug() << "Failed to update data!";
return -1;
}
// 执行删除操作
query.prepare("DELETE FROM student WHERE age = :age");
query.bindValue(":age", 20);
if (!query.exec()) {
qDebug() << "Failed to delete data!";
return -1;
}
// 关闭数据库连接
db.close();
return 0;
}
```
上述代码中,首先创建了一个 MySQL 数据库连接,并打开了该连接。然后通过 `QSqlQuery` 类执行了插入、查询、更新和删除操作。最后关闭了数据库连接。
其中,插入操作使用了 `prepare()` 函数和 `bindValue()` 函数,可以避免 SQL 注入攻击;查询操作使用了 `next()` 函数遍历查询结果集;更新和删除操作使用了 `prepare()` 函数和 `bindValue()` 函数,同样可以避免 SQL 注入攻击。
阅读全文