QT开发中文网

QSqlQuery 批量插入数据

在使用 QSqlQuery 执行批量插入数据时,可以先将 SQL 语句拼接成一个大字符串再执行,也可以使用 bindValue() 函数绑定参数,以达到批量插入的效果。

下面是一个示例代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("password");
db.setDatabaseName("test");

if (!db.open()) {
    qDebug() << "Failed to connect to database!";
    return;
}

QSqlQuery query(db);

QString insert_sql = "INSERT INTO test_table (name, age) VALUES ";

for (int i = 0; i < 1000; i++) {
    insert_sql += QString("(:name_%1, :age_%1), ").arg(i);
}

// 去除最后一个逗号和空格
insert_sql.chop(2);

query.prepare(insert_sql);

for (int i = 0; i < 1000; i++) {
    query.bindValue(QString(":name_%1").arg(i), QString("user%1").arg(i));
    query.bindValue(QString(":age_%1").arg(i), QRandomGenerator::global()->bounded(18, 30));
}

if (!query.exec()) {
    qDebug() << "Failed to execute query:" << query.lastError().text();
    return;
}

qDebug() << "Batch insert success!";

在上面的代码中,我们先通过字符串拼接生成了一个批量插入的 SQL 语句。然后通过 for 循环绑定参数,达到批量插入的效果。最后,执行 exec() 函数提交事务。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=251

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?