Qt学习笔记之数据库结构设计2

电子说

1.3w人已加入

描述

更新数据库操作实例

//更新数据操作
QString sqlUpdate = QString("update staff set name = '李四' where id= 3;");
if(!query.exec(sqlUpdate))
{
    qDebug() << "update data error" << db.lastError();
}

(5)查询数据

查询操作语法:

SELECT column1, column2, column FROM table_name;

SELECT ---- 关键字

column1, column2 columnN --- 列的字段名

FROM ----- 关键字

table_name ----- 表名

从表中查询出指定字段的对应的值,如果想要拆线呢所有字段的值,可以采用:select * from 表名

SELECT * FROM table_name;

查询操作实例:

//查询操作
QString sqlSelect = QString("select * from staff;");


if(!query.exec(sqlSelect))
{
    qDebug() << "insert data error" << db.lastError();
}
else
{
    while(query.next())
    {
        qDebug() << query.value("name").toString();
        qDebug() << query.value("age").toInt();
    }
}

第五步:显示数据库信息到UI页面

//显示数据库信息
QString sqlSelect = QString("select * from staff;");


if(!query.exec(sqlSelect))
{
    qDebug() << "query data error" << db.lastError();
}
else
{
    while(query.next())
    {
        qDebug() << query.value("name").toString();
        qDebug() << query.value("age").toInt();
        ui->nameLabel->setText(query.value("name").toString());
        ui->ageLabel->setText(QString::number(query.value("name").toInt()));
    }
}

查询到最后一行数据显示到UI上:

嵌入式

第六步:关闭数据库

db.close();

3、Qt SQL模块数据库类接口

在Qt中为SQL数据库提供驱动程序层、SQL API层和用户界面层,其提供主要类的简要功能说明见下表

Qt SQL模块包含的主要类的功能

类名称 功能说明
QSqlDatabase 用于与数据库建立连接
QSqlDriver 访问特定sql数据库的抽象基类
QSqlDriverCreator 为某个具体的数据库驱动提供SQL驱动的模板类
QSqlDriverCreatorBase 所有SQL驱动器的基类
QSqlDriverPlugin 用于定制QSqlDriver插件的抽象类
QSqlError SQL数据错误细信息,可以用于访问上一次出错的信息
QSqlField 操作数据表或试图的字段的类
QSqlIndex 执行数据库索引的类
QSqlQuery 执行各种SQL语句的类
QSqlQueryModel SQL查询结果数据的只读数据模型,用于SELECT查询结果数据记录的只读显示
QSqlRecord 封装了数据记录操作的类
QSqlRelation 用于存储SQL外键信息的类,用于QSqlRelationalTableModel数据源中设置代码字段与关联数据表的关系
QSqlRelationTableModel 用于QSqlRelationalTableModel的一个代码字段的显示和编辑代理组件,一般是一个QComboBox组件,下拉列表中自动填充代码表的代码字段对应的实际内容
QSqlRelationTableModel 用于一个数据表的可编辑数据模型,支持代码字段的外键
QSqlResult 访问SQL数据库的抽象接口
QSqlTableModel 编辑一个单一数据表的数据模型类

QtSQL也是采用MVC设计思想来处理数据,主要类有:

(1) QSqlDatabase用于建立与数据库的连接,在建立连接时,加载数据库驱动的时候,可以设置数据库类型和数据库名字。除此之外,还可以通过接口设置数据库名字、主机名、用户名和密码,其主要接口说明见下表:

QSqlDatabase操作主要接口

函数名称 功能说明
QSqlDatabase addDatabase(constQString &type,const QString &connectionName=QLatin1String(defaultConnection)) 根据数据库类型,获取数据库对象并连接
void setDatabaseName(const QString &name) 设置连接数据库名字
void setHostName(const QString &host) 设置连接主机名字
void sePassword(const QString &password) 设置连接密码
void setUserName(const QString &name) 设置连接用户名
bool open() 打开连接的数据库

(2) QSqlQuery执行各种SQL语句的类,在打开成功连接的数据库,则可以通过QSqlQuery的接口来访问数据库中内容,其主要接口说明见下表

QSqlQuery操作主要接口

函数名称 功能说明
QSqlQuery(const QString &query = QString(),QSqlDatabase db=QSqlDatabase()) 得到访问数据库QSqlQuery对象
bool exec(const QString &query) 执行SQL语句访问数据库
int at() const 得到当前记录查询位置,第一条记录的为0
bool first() 检索结果中的第一条记录
bool last() 检索结果中的最后一条记录
bool next() 检索结果中的下一条记录
QVariant value(const QString &name) const 返回当前记录中名为name的字段的值
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分