转载自:http://blog.csdn.net/wyansai/article/details/52901166
一、加载sql驱动
修改项目文件pro,添加:
QT += sql
包含头文件:
#include <QtSql>
加载数据库驱动:
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;
}