0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_78858299 来源: 纷纭杂谈 作者:CY_CHEN 2023-02-17 11:25 次阅读

更新数据库操作实例

//更新数据操作
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的字段的值
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4984

    文章

    18300

    浏览量

    288664
  • 数据库
    +关注

    关注

    7

    文章

    3592

    浏览量

    63382
  • MySQL
    +关注

    关注

    1

    文章

    776

    浏览量

    26012
收藏 人收藏

    评论

    相关推荐

    数据库逻辑结构设计(2)#数据库技术

    数据库
    未来加油dz
    发布于 :2023年07月11日 15:37:36

    操作系统结构设计

    的系统结构设计。但其在此基础上增加了一些形如动态模块加载等方法来提高整体的灵活性,弥补整体式系统结构设计的不足。   2.层次式系统结构设计 这种方式则是对系统进行严格的分层,使得整个
    发表于 09-13 10:10

    浅谈产品结构设计特点 

    `  产品结构设计是根据产品功能而进行的内部结构的设计,是机械设计的主要内容之一。产品结构设计内容有零件的分件、部件的固定方式、产品使用和功能的实现方式、产品使用材料和表面处理工艺等。要求产品
    发表于 02-25 17:24

    【NanoPi M2试用体验】基于QT图形界面编程操作MySQL数据库

    本帖最后由 zxl_zxl 于 2016-5-19 21:09 编辑 Nanopi M2试用体验基于QT图形界面编程操作MySQL数据库在上一篇使用报告中,介绍了在Nanopi
    发表于 05-19 21:04

    软件结构设计

    软件结构设计,,
    发表于 09-26 13:55

    轴系结构设计实验

    实验六 轴系结构设计实验一、实验目的: 熟悉并掌握轴系结构设计中有关轴的结构设计、滚动轴承组合设计的基本方法。 二、实
    发表于 03-13 19:04 5.6w次阅读
    轴系<b class='flag-5'>结构设计</b>实验

    半替代护环的结构设计

    半替代护环的结构设计_张国喜
    发表于 01-07 16:52 0次下载

    如何进行数据库设计?数据库设计介绍和需求分析及结构设计资料概述

    数据库设计的任务是指根据需求研制数据库结构并应用 数据库的过程。数据库设计内容包括数据库
    发表于 09-13 17:05 0次下载
    如何进行<b class='flag-5'>数据库</b>设计?<b class='flag-5'>数据库</b>设计介绍和需求分析及<b class='flag-5'>结构设计</b>资料概述

    数据库概念结构是如何设计的概念结构设计资料概述

    本文档的主要内容详细介绍的是数据库概念结构是如何设计的概念结构设计资料概述主要内容包括了:1 概念结构2 概念结构设计的方法与步骤3
    发表于 10-26 11:49 22次下载
    <b class='flag-5'>数据库</b>概念<b class='flag-5'>结构</b>是如何设计的概念<b class='flag-5'>结构设计</b>资料概述

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

    数据库也是应用程序的重要部分,一个完整的应用程序几乎都包含数据库。 当前主流的数据库有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。 Sqlite是一款轻型的
    的头像 发表于 02-17 11:25 568次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>1

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

    首先布局好UI界面 布局好后,我们需要在ListWidget上显示很多内容,但是一个字符串列表不足以完成这个需求,或者能够完成效果也不是很好,所以需要创建一个新的UI页面自定义一个条目布局。
    的头像 发表于 02-17 11:27 510次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>3

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

    首先布局好UI界面 布局好后,我们需要在ListWidget上显示很多内容,但是一个字符串列表不足以完成这个需求,或者能够完成效果也不是很好,所以需要创建一个新的UI页面自定义一个条目布局。
    的头像 发表于 02-17 11:28 323次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>4

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

    Qt中,Qt为SQL数据库提供支持的基本模块。Qt SQL的API分为不同的层: ·驱动层 ·SQL API层 ·用户接口层
    的头像 发表于 02-17 13:56 552次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>5

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

    Qt中,Qt为SQL数据库提供支持的基本模块。Qt SQL的API分为不同的层: ·驱动层 ·SQL API层 ·用户接口层
    的头像 发表于 02-17 13:57 350次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>6

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

    Qt中,Qt为SQL数据库提供支持的基本模块。Qt SQL的API分为不同的层: ·驱动层 ·SQL API层 ·用户接口层
    的头像 发表于 02-17 13:57 360次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>7