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

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

3天内不再提示

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

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

更新数据库操作实例

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

    关注

    5127

    文章

    19457

    浏览量

    313479
  • 数据库
    +关注

    关注

    7

    文章

    3885

    浏览量

    65620
  • MySQL
    +关注

    关注

    1

    文章

    841

    浏览量

    27384
收藏 人收藏
    相关推荐
    热点推荐

    数据库系统是什么?数据库系统概念数据库设计资料免费下载

      什么是概念结构设计1.将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计2.概念结构是各种
    发表于 09-07 14:34 1次下载
    <b class='flag-5'>数据库</b>系统是什么?<b class='flag-5'>数据库</b>系统概念<b class='flag-5'>之</b><b class='flag-5'>数据库</b>设计资料免费下载

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

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

    如何使用PowerDesigner进行数据库静态结构设计?详细资料概述

    把用户需求抽象为概念模型即为概念结构设计。 概念模型除了要求能反映客观世界并且易于理解外,还要求其易于向数据模型(如关系模型)转化。 概念模型独立于具体的数据库系统,是整个数据库
    发表于 09-13 17:05 0次下载
    如何使用PowerDesigner进行<b class='flag-5'>数据库</b>静态<b class='flag-5'>结构设计</b>?详细资料概述

    数据库静态结构如何设计?详细资料任务和方法说明

    任务:实现数据库设计新奥尔良方法中概念结构设计和逻辑结构设计
    发表于 09-27 15:32 1次下载
    <b class='flag-5'>数据库</b>静态<b class='flag-5'>结构</b>如何设计?详细资料任务和方法说明

    数据库教程之如何进行数据库设计

    本文档的主要内容详细介绍的是数据库教程之如何进行数据库设计内容包括了:1 数据库设计概述 ,2 数据库需求分析 ,3
    发表于 10-19 10:41 21次下载
    <b class='flag-5'>数据库</b>教程之如何进行<b class='flag-5'>数据库</b>设计

    数据库设计的七大知识点总结详细资料免费下载

    本文档的主要内容详细介绍的是数据库设计的七大知识点总结包括了:1 数据库设计概述2 需求分析3 概念结构设计4 逻辑结构设计5
    发表于 10-19 10:41 0次下载
    <b class='flag-5'>数据库</b>设计的七大知识点总结详细资料免费下载

    数据库学习入门资料如何进行数据库设计

    本文档的主要内容详细介绍的是数据库学习入门资料如何进行数据库设计主要内容包括了:数据库系统设计的1 概述
    发表于 10-25 16:29 14次下载
    <b class='flag-5'>数据库</b><b class='flag-5'>学习</b>入门资料<b class='flag-5'>之</b>如何进行<b class='flag-5'>数据库</b>设计

    数据库学习入门资料数据库的概念结构详细资料概述

    什么是概念结构设计 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计 概念结构是各种数据模型的共同基础,它比
    发表于 10-25 16:29 0次下载
    <b class='flag-5'>数据库</b><b class='flag-5'>学习</b>入门资料<b class='flag-5'>之</b><b class='flag-5'>数据库</b>的概念<b class='flag-5'>结构</b>详细资料概述

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

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

    数据库的设计概念总结

    本文档的主要内容详细介绍的是数据库的设计概念总结主要内容包括了:1.数据库设计概述,2.需求分析,3.概念结构设计,4.逻辑结构设计,5.
    发表于 01-09 17:29 13次下载
    <b class='flag-5'>数据库</b>的设计概念总结

    数据库设计开发案例教程之数据库设计的资料介绍

    本文档的主要内容详细介绍的是数据库设计开发案例教程之数据库设计的资料介绍主要内容包括了:1 数据库设计概述,2 需求分析,3 概念结构设计
    发表于 01-11 11:20 17次下载
    <b class='flag-5'>数据库</b>设计开发案例教程之<b class='flag-5'>数据库</b>设计的资料介绍

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

    数据库也是应用程序的重要部分,一个完整的应用程序几乎都包含数据库。 当前主流的数据库有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。 Sqlit
    的头像 发表于 02-17 11:25 964次阅读
    <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><b class='flag-5'>结构设计</b>1

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

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

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

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

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

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

    半导体芯片需要做哪些测试

    首先我们需要了解芯片制造环节做⼀款芯片最基本的环节是设计->流片->封装->测试,芯片成本构成⼀般为人力成本20%,流片40%,封装35%,测试5%(对于先进工艺,流片成本可能超过60%)。测试其实是芯片各个环节中最“便宜”的一步,在这个每家公司都喊着“CostDown”的激烈市场中,人力成本逐年攀升,晶圆厂和封装厂都在乙方市场中“叱咤风云”,唯独只有测试显

    汉通达
    17小时前
    300

    解决方案 | 芯佰微赋能示波器:高速ADC、USB控制器和RS232芯片——高性能示波器的秘密武器!

    示波器解决方案总述:示波器是电子技术领域中不可或缺的精密测量仪器,通过直观的波形显示,将电信号随时间的变化转化为可视化图形,使复杂的电子现象变得清晰易懂。无论是在科研探索、工业检测还是通信领域,示波器都发挥着不可替代的作用,帮助工程师和技术人员深入剖析电信号的细节,精准定位问题所在,为创新与发展提供坚实的技术支撑。一、技术瓶颈亟待突破性能指标受限:受模拟前端

    芯佰微电子
    16小时前
    368

    硬件设计基础----运算放大器

    1什么是运算放大器运算放大器(运放)用于调节和放大模拟信号,运放是一个内含多级放大电路的集成器件,如图所示:左图为同相位,Vn端接地或稳定的电平,Vp端电平上升,则输出端Vo电平上升,Vp端电平下降,则输出端Vo电平下降;右图为反相位,Vp端接地或稳定的电平,Vn端电平上升,则输出端Vo电平下降,Vn端电平下降,则输出端Vo电平上升2运算放大器的性质理想运算

    张飞实战电子官方
    1天前
    302

    ElfBoard技术贴|如何调整eMMC存储分区

    ELF 2开发板基于瑞芯微RK3588高性能处理器设计,拥有四核ARM Cortex-A76与四核ARM Cortex-A55的CPU架构,主频高达2.4GHz,内置6TOPS算力的NPU,这一设计让它能够轻松驾驭多种深度学习框架,高效处理各类复杂的AI任务。

    ElfBoard
    1天前
    577

    米尔基于MYD-YG2LX系统启动时间优化应用笔记

    1.概述MYD-YG2LX采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600/DDR3L-1333内存控制器、千兆以太网控制器、USB、CAN、

    米尔电子
    1天前
    284

    运放技术——基本电路分析

    虚短和虚断的概念由于运放的电压放大倍数很大,一般通用型运算放大器的开环电压放大倍数都在80dB以上。而运放的输出电压是有限的,一般在10V~14V。因此运放的差模输入电压不足1mV,两输入端近似等电位,相当于“短路”。开环电压放大倍数越大,两输入端的电位越接近相等。“虚短”是指在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称

    张飞实战电子官方
    2天前
    382

    飞凌嵌入式携手中移物联,谱写全国产化方案新生态

    4月22日,飞凌嵌入式“2025嵌入式及边缘AI技术论坛”在深圳成功举办。中移物联网有限公司(以下简称“中移物联”)携OneOS操作系统与飞凌嵌入式共同推出的工业级核心板亮相会议展区,操作系统产品部高级专家严镭受邀作《OneOS工业操作系统——助力国产化智能制造》主题演讲。

    飞凌嵌入式
    2天前
    931

    ATA-2022B高压放大器在螺栓松动检测中的应用

    实验名称:ATA-2022B高压放大器在螺栓松动检测中的应用实验方向:超声检测实验设备:ATA-2022B高压放大器、函数信号发生器,压电陶瓷片,数据采集卡,示波器,PC等实验内容:本研究基于振动声调制的螺栓松动检测方法,其中低频泵浦波采用单频信号,而高频探测波采用扫频信号,利用泵浦波和探测波在接触面的振动声调制响应对螺栓的松动程度进行检测。通过螺栓松动检测

    Aigtek安泰电子
    05-06 18:44
    1.1k

    MOS管驱动电路——电机干扰与防护处理

    此电路分主电路(完成功能)和保护功能电路。MOS管驱动相关知识:1、跟双极性晶体管相比,一般认为使MOS管导通不需要电流,只要GS电压(Vbe类似)高于一定的值,就可以了。MOS管和晶体管向比较c,b,e—–>d(漏),g(栅),s(源)。2、NMOS的特性,Vgs大于一定的值就会导通,适合用于源极接地时的情况(低端驱动),只要栅极电压达到4V或10V就可以

    张飞实战电子官方
    05-06 19:34
    407

    压敏(MOV)在电机上的应用剖析

    一前言有刷直流电机是一种较为常见的直流电机。它的主要特点包括:1.结构相对简单,由定子、转子、电刷和换向器等组成;2.通过电刷与换向器的接触来实现电流的换向,从而使电枢绕组中的电流方向周期性改变,保证电机持续运转;3.具有调速性能较好等优点,可以通过改变电压等方式较为方便地调节转速。有刷直流电机在许多领域都有应用,比如一些电动工具、玩具、小型机械等。但它也存

    深圳市韬略科技有限公司
    05-06 11:34
    278

    硬件原理图学习笔记

    这一个星期认真学习了硬件原理图的知识,做了一些笔记,方便以后查找。硬件原理图分为三类1.管脚类(gpio)和门电路类输入输出引脚,上拉电阻,三极管与门,或门,非门上拉电阻:正向标志作用,给悬空的引脚一个确定的状态三极管:反向三极管(gpio输出高电平,NP两端导通,被控制端导通,电压为0)->NPN正向三极管(gpio输出低电平,PN两端导通,被控制端导通,

    张飞实战电子官方
    04-30 18:40
    474

    TurMass™ vs LoRa:无线通讯模块的革命性突破

    TurMass™凭借其高传输速率、强大并发能力、双向传输、超强抗干扰能力、超远传输距离、全国产技术、灵活组网方案以及便捷开发等八大优势,在无线通讯领域展现出强大的竞争力。

    道生物联
    05-06 10:50
    914

    RZT2H CR52双核BOOT流程和例程代码分析

    RZT2H是多核处理器,启动时,需要一个“主核”先启动,然后主核根据规则,加载和启动其他内核。本文以T2H内部的CR52双核为例,说明T2H多核启动流程。

    RA生态工作室
    04-03 17:14
    2.1k

    干簧继电器在RF信号衰减中的应用与优势

    在电子测试领域,RF(射频)评估是不可或缺的一部分。无论是研发阶段的性能测试,还是生产环节的质量检测,RF测试设备都扮演着关键角色。然而,要实现精准的RF评估,测试设备需要一种特殊的电路——衰减电路。这些电路的作用是调整RF信号的强度,以便测试设备能够准确地评估RF组件和RF电路的各个方面。衰减器的挑战衰减器的核心功能是校准RF信号的强度。为了实现这一点,衰

    斯丹麦德电子
    04-30 11:33
    748

    ElfBoard嵌入式教育科普|ADC接口全面解析

    当代信息技术体系中,嵌入式系统接口作为数据交互的核心基础设施,构成了设备互联的神经中枢。基于标准化通信协议与接口规范的技术架构,实现了异构设备间的高效数据交换与智能化协同作业。本文选取模数转换接口ADC作为技术解析切入点,通过系统阐释其工作机理、性能特征及重要参数,为嵌入式学习者爱好者构建全维度接口技术认知框架。

    ElfBoard
    04-30 09:34
    428