先创建info.db文件
.pro文件
QT += core gui sql
widget.cpp
#include "widget.h"#include "ui_widget.h"#include <QDebug>#include <QSqlDatabase>#include <QMessageBox>#include <QSqlError>#include <QSqlQuery>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget){ui->setupUi(this);// 打印Qt支持的数据库驱动qDebug() << QSqlDatabase::drivers();// 添加sqlite数据库QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");// 设置数据库db.setDatabaseName("./info.db");// 打开数据库if (!db.open()){QMessageBox::warning(this, "错误", db.lastError().text());return;}else {QSqlQuery query(db);query.exec("create table student(id int primary key, name varchar(255), age int, score int);");// 批量插入// odbc风格// 预处理语句 ?号相当于占位符query.prepare("insert into student(name, age, score) values(?, ?, ?);");// 给字段设置内容 listQVariantList nameList;nameList << "小明" << "小龙" << "小江";QVariantList ageList;ageList << 11 << 22 << 33;QVariantList scoreList;scoreList << 55 << 85 << 75;// 给字段绑定相应的值 按顺序绑定query.addBindValue(nameList);query.addBindValue(ageList);query.addBindValue(scoreList);// 执行预处理命令query.execBatch();// 查数据query.exec("select * from student");while (query.next()) // 一行一行遍历{// 取出当前行的内容qDebug() << query.value(0).toInt()<< query.value(1).toString()<< query.value("age").toInt()<< query.value("score").toInt();}}}Widget::~Widget(){delete ui;}
