简介

QT通过模块化管理,对于某种模块需要添加对应的模块实现。QT SQL也是需要增加对应的模块来实现。QT数据库的层次关系为:

驱动层:数据库到SQL语言之间的桥梁

SQL API层: SQL语句的操作层

用户操作层:用户函数调用

操作流程

  1. 添加项目管理文件(pro)
  2. 查看数据库驱动的支持
  3. 连接和打开数据库
  4. 访问数据库
  5. 关闭数据库

图形工具

为了确保数据库操作过程可视化,所以一个工具SQLite Expert来查看。同时,可以使用这个工具实现SQL语法的检查。这个可以确保指令不会出错。

使用这个软件可以快速地完成数据库的查看以及一些手工操作,提高设计的反馈。

具体设计-人员表

设计一个人员表,可以将数据库中的数据获取,也可以更新数据的操作。

UI界面设计

  1. UI实现控制功能包括:连接、更新、删除、查询。控制上直接使用按钮启动即可,设计好对应的槽函数。
  2. 参数输入的话,使用文本输入框就可以,可以使用自带的转化函数转化为对应的数据类型。
  3. 数据显示的话,需要使用一个自定义条目的界面。就是使用界面类完成数据的集成,然后使用QWidget完成界面的嵌入调用。基本思路是使用QListWidgetItem类将条目界面关联,然后使用QWidget设置条目就可以完成显示。数据操作转化为对应的界面的控件的操作。

数据库数据的生成

  1. 连接数据库(或者新建数据库)
  2. 打开数据库
  3. 通过SQL指令控制数据库
  4. 关闭数据库

数据库和控件关联

  1. 操作类关联:直接使用槽函数控制数据库,使用SQL语言。
  2. 参数类关联:对于主界面的参数直接读取,对于分界面,使用公共函数即可。

QsqlQueryModel的使用

数据读取

以只读的方式读取的数据库的数据,可以直接和UI的控件对应起来。将数据库的读取为一个表,可以快读完成数据的读取。

  1. 读取数据库的表头信息,转化为一个对象QSqlQueryModel。
  2. 给UI控件QWidget以表格的形式关联
  3. 将数据库的表格显示到QTableView

数据写入

数据写入就需要重写flags和setdata两个函数,通过将这两个函数判断哪些数据可以修改。修改显示的样式则是使用data函数即可。修改方式就是使用Query的SQL语句。前面学习数据操作时就接触过。

小结

数据库可以高效管理数据,底层操作依靠SQL语句,可以使用Model进行操作简化,Qt的SQLite可以完成简易的数据库管理。

QT数据库学习笔记的更多相关文章

  1. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  5. MYSQL数据库学习笔记1

      MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...

  6. [转]mnesia数据库学习笔记

    mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四

  7. 数据库学习笔记3 基本的查询流 2 select lastname+','+firstname as fullname order by lastname+','+firstname len() left() stuff() percent , select top(3) with ties

    数据库学习笔记3 基本的查询流 2   order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.pers ...

  8. QT入门学习笔记2:QT例程

    转至:http://blog.51cto.com/9291927/2138876 Qt开发学习教程 一.Qt开发基础学习教程 本部分博客主要根据狄泰学院唐老师的<QT实验分析教程>创作,同 ...

  9. Caché数据库学习笔记(5)

    目录 Cache数据库方法的RESTful封装 ================================================================ 因为对web serv ...

  10. MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. STC系列8位MCU在Windows下的开发

    STC系列 MCS-51 8位MCU 简介 STC的8位MCU有89/90/10/11/12/15/8(A/F/G/H)这几个大系列, 都是8051衍生的8位单片机, 每个系列的特点如下 STC89系 ...

  2. 单例模式五种实现方式以及在JDK中的体现

    单例模式五种实现方式以及在JDK中的体现 一.五种实现方式 1.饿汉式 构造私有 提供一个静态私有的成员常量,类型就是单例类型,值是用私有构造创造出来的唯一实例 提供公共的静态方法获取上述的静态成员常 ...

  3. uniapp实现点击加载更多

    使用场景 举个栗子:外卖app当订单商品数量比较多时,不方便一次性展示出来.通常会展示一部分,并在页面给出一个查看更多功能.点击后即可自定义展示剩余内容,比如可以每次点击多展示N个内容,或展示所有. ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (199)-- 算法导论15.2 1题

    一.用go语言,对矩阵规模序列(5,10,3,12,5,50,6),求矩阵链最优括号化方案. 文心一言,代码正常运行: 在Go语言中,为了找到矩阵链乘法的最优括号化方案,我们通常会使用动态规划(Dyn ...

  5. win32 - SetWinEventHook的用法

    #include <Windows.h> #include <iostream> #include <thread> #include <tchar.h> ...

  6. win32 - MultiByteToWideChar的示例

    该函数经常被用来处理UTF-8和ANSI格式的字符串,将它们转换为宽字节(UTF-16) #include <iostream> #include <Windows.h> #i ...

  7. 从零开始写 Docker(二)---优化:使用匿名管道传递参数

    本文为从零开始写 Docker 系列第二篇,主要在 mydocker run 命令基础上优化参数传递方式,改为使用 runC 同款的匿名管道传递参数. 如果你对云原生技术充满好奇,想要深入了解更多相关 ...

  8. extra用法

    做子查询时,有些orm语句满足不了的时候使用 select参数 ## select age,(age > 18) as is_adult from myapp_person; Person.ob ...

  9. 【Azure 应用服务】Azure Durable Function(持久函数)在执行Activity Function时候,因为调用函数名称错误而导致长时间无响应问题

    问题描述 在使用Azure Durable Function函数,调用函数链模式来调用多个Activity Function. 函数链:https://docs.azure.cn/zh-cn/azur ...

  10. 浅入 ABP 系列(6):数据库配置

    浅入 ABP 系列(6):数据库配置 版权护体作者:痴者工良,微信公众号转载文章需要 <NCC开源社区>同意. 目录 浅入 ABP 系列(6):数据库配置 创建标准的 EFCore 数据库 ...