QT 多线程修改数据库
时间: 2023-05-17 19:06:38 浏览: 127
QT多线程
5星 · 资源好评率100%
可以使用 Qt 的 QSqlDatabase 和 QSqlQuery 类来连接和修改数据库。在多线程环境下,需要注意以下几点:
1. 每个线程需要创建自己的 QSqlDatabase 和 QSqlQuery 对象,不能共用一个对象。
2. 在每个线程中,需要先打开数据库连接,然后执行 SQL 语句,最后关闭连接。
3. 在执行 SQL 语句时,需要使用 QSqlQuery::exec() 函数,而不是 QSqlQuery::prepare() 和 QSqlQuery::bindValue() 函数。
以下是一个示例代码:
```cpp
#include <QtSql>
void workerThread()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mydatabase");
db.setUserName("myusername");
db.setPassword("mypassword");
if (!db.open()) {
qDebug() << "Failed to connect to database";
return;
}
QSqlQuery query(db);
query.exec("UPDATE mytable SET mycolumn = 'newvalue' WHERE id = 1");
db.close();
}
```
注意:以上代码仅供参考,实际使用时需要根据具体情况进行修改。
阅读全文