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

驱动层:数据库到SQL语言之间的桥梁
SQL API层: SQL语句的操作层
用户操作层:用户函数调用
操作流程
- 添加项目管理文件(pro)
- 查看数据库驱动的支持
- 连接和打开数据库
- 访问数据库
- 关闭数据库
图形工具
为了确保数据库操作过程可视化,所以一个工具SQLite Expert来查看。同时,可以使用这个工具实现SQL语法的检查。这个可以确保指令不会出错。

使用这个软件可以快速地完成数据库的查看以及一些手工操作,提高设计的反馈。
具体设计-人员表
设计一个人员表,可以将数据库中的数据获取,也可以更新数据的操作。
UI界面设计
- UI实现控制功能包括:连接、更新、删除、查询。控制上直接使用按钮启动即可,设计好对应的槽函数。
- 参数输入的话,使用文本输入框就可以,可以使用自带的转化函数转化为对应的数据类型。
- 数据显示的话,需要使用一个自定义条目的界面。就是使用界面类完成数据的集成,然后使用QWidget完成界面的嵌入调用。基本思路是使用QListWidgetItem类将条目界面关联,然后使用QWidget设置条目就可以完成显示。数据操作转化为对应的界面的控件的操作。
数据库数据的生成
- 连接数据库(或者新建数据库)
- 打开数据库
- 通过SQL指令控制数据库
- 关闭数据库
数据库和控件关联
- 操作类关联:直接使用槽函数控制数据库,使用SQL语言。
- 参数类关联:对于主界面的参数直接读取,对于分界面,使用公共函数即可。
QsqlQueryModel的使用
数据读取
以只读的方式读取的数据库的数据,可以直接和UI的控件对应起来。将数据库的读取为一个表,可以快读完成数据的读取。
- 读取数据库的表头信息,转化为一个对象QSqlQueryModel。
- 给UI控件QWidget以表格的形式关联
- 将数据库的表格显示到QTableView
数据写入
数据写入就需要重写flags和setdata两个函数,通过将这两个函数判断哪些数据可以修改。修改显示的样式则是使用data函数即可。修改方式就是使用Query的SQL语句。前面学习数据操作时就接触过。
小结
数据库可以高效管理数据,底层操作依靠SQL语句,可以使用Model进行操作简化,Qt的SQLite可以完成简易的数据库管理。
QT数据库学习笔记的更多相关文章
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
- MYSQL数据库学习笔记1
MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...
- [转]mnesia数据库学习笔记
mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四
- 数据库学习笔记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 ...
- QT入门学习笔记2:QT例程
转至:http://blog.51cto.com/9291927/2138876 Qt开发学习教程 一.Qt开发基础学习教程 本部分博客主要根据狄泰学院唐老师的<QT实验分析教程>创作,同 ...
- Caché数据库学习笔记(5)
目录 Cache数据库方法的RESTful封装 ================================================================ 因为对web serv ...
- MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
随机推荐
- Js获取数据类型
Js获取数据类型 JavaScript有着七种基本类型String.Number.Boolean.Null.Undefined.Symbol.Object,前六种为基本数据类型,Object为引用类型 ...
- js数组类型
js数组类型: 数组检测 1.判断变量是否为数组类型: arr1 instanceof Array Array.isArray(arr1); true 转换方法 toString()方法,以便返回数组 ...
- GDI快速遍历位图像素
使用DIB部分可直接快速访问像素 例如,此测试将记事本中的所有白色像素替换为绿色像素 HDC hDCScreen = GetDC(NULL); HWND hWndDest = FindWindow(L ...
- 链表--insert
分别是使用了二级指针和一级指针的两种方法,最后会按插入的顺序依次打印1,2,3,4 主要区别在于,使用二级指针,可以在main函数里直接用一个空的Node指针,而一级指针是在main函数里面先添加了一 ...
- 如何申请免费的SSL证书和通配符证书
一,目前免费证书普遍存在的痛点 证书有效期普遍只有3个月 2023年12月22日阿里云官方发布公告,后续免费证书的有效期统一调整为3个月,我相信其它厂商很快也会做出调整. 调整为3个月有效期后,意味着 ...
- 深入理解Go语言(03):scheduler调度器 - 基本介绍
一:什么是调度 平常我们在生活中会有哪些调度的例子呢?比如十字路口的红绿灯,它就是一种调度系统.在交通十字路口,每个路口上多多少少有一些车辆,为了限制这些车辆不随意行驶,就建起了红绿灯调度系统.红绿灯 ...
- 矩池云|GPU 分布式使用教程之 TensorFlow
GPU 分布式使用教程之 TensorFlow TensorFlow 提供了6种策略实现分布式计算,各个策略详情请参考官方文档.本文档使用 MirroredStrategy 实现单机多卡分布式,Mul ...
- 【Azure 环境】当在Azure 环境中调用外部接口不通时,如何定位SSL Certificate Problem
问题描述 如果在Azure VM中,发现同一个API,一台VM可以访问成功,另外一台访问失败.如何来调试并定位问题呢? 问题分析 第一步,查看访问外部API不通时候出现什么错误.如果没有明确的错误消息 ...
- Binlog分析利器-binlog_summary.py
Binlog中,除了具体的SQL,其实,还包含了很多有价值的信息,如, 事务的开始时间. 事务的结束时间. 事务的开始位置点. 事务的结束位置点. 操作的开始时间(一个事务通常会包含多个操作). 表 ...
- 第18章_MySQL8其它新特性
# 目录: https://www.cnblogs.com/xjwhaha/p/15844178.html 1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令 ...