一、加载sql驱动
修改项目文件pro,添加
QT += sql
包含头文件
#include 加载数据库驱动
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");设置账号密码
db.setHostName("localhost");
db.setDatabaseName("hibernate");
db.setUserName("root");
db.setPassword("");
if(!db.open()){
qDebug() << "数据库操作失败";return;
}
二、查询语言
执行查询语句
QSqlQuery query;
bool success = query.exec("select * from user");
if(!success){
qDebug() << "查询user失败";return;
}
获取表的数据结构信息,即字段名相关信息
QSqlRecord rec = query.record();
qDebug() << "user表的字段总数为:" << rec.count();
获取查询结果集
// 将查询的结果集指针调整到最开始
query.seek(-1);
while(query.next()){
qDebug() << query.value(0) << query.value(1) << query.value(2);
}
三、插入数据库
// 插入数据user
query.prepare("insert into user values(?,?,?)");
query.bindValue(1,"kanrong");
query.bindValue(2,12);
success = query.exec();
if(!success){
QSqlError lastError = query.lastError();
qDebug() << "插入失败:" << lastError.driverText() << lastError.databaseText();return;
}
四、更新数据库
操作和插入一样
五、删除
直接使用query.exec(sql)即可。
六、新建表
QSqlQuery query;
bool success = false;
success= query.exec("create table if not exists user \
(id integer primary key autoincrement not null,\
username varchar,\
age int)");
if(!success){
qDebug() << "新建表user失败";
QSqlError lastError = query.lastError();
qDebug() << "插入失败:" << lastError.driverText() << lastError.databaseText();
return;
}