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中fetch方法
Js中fetch方法 fetch()方法定义在Window对象以及WorkerGlobalScope对象上,用于发起获取资源的请求,其返回一个Promise对象,这个Promise对象会在请求响应后被 ...
- Idea 本人开发常用几款插件
先说 idea装插件 首先,进入插件安装界面: 标注 1:显示 IntelliJ IDEA 的插件分类, All plugins:显示 IntelliJ IDEA 支持的所有插件: Enabled:显 ...
- Java设计模式-适配器模式Adapter
介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本 因接口不匹配不能一起工作的两个类可以协同工作.其别名为包装器(Wrapper ...
- wordpress设置固定链接404及伪静态配置
说明 最近在将wordpress设置中文章url修改为月份和名称型 之后访问文章出现404.原因是配有配置好apache的伪静态. 配置步骤 1.修改httpd.conf 我这里是centos7,默认 ...
- 对yuv存储格式中的yuv420p和yuv420sp的理解
一.对yuv的认识 yuv是一种颜色编码系统,它将图像的亮度和色度分离开来.y表示亮度,即黑白信息:uv表示色度,即颜色信息.yuv常用于视频压缩和传输中,因为它可以更有效地表示人眼对亮度和色度的敏感 ...
- ALTER TABLE 加字段的时候到底锁不锁表?
Mysql5.6版本之前 更新步骤 对原始表加写锁 按照原始表和执行语句的定义,重新定义一个空的临时表. 对临时表进行添加索引(如果有). 再将原始表中的数据逐条Copy到临时表中. 当原始表中的所有 ...
- kubernetes(k8s)大白学习01-kubernetes是什么?有什么用?
kubernetes(k8s)大白基础学习-kubernetes是什么? 一.认识 Docker Docker 是什么 先来看看 Docker 的图标: 一条鲸鱼背上驮着四方形块的物品,就像一条海运船 ...
- Maven应用常见问题
在Spring Boot项目中打包指定类为启动类 <build> <plugins> <plugin> <groupId>org.springframe ...
- IntelliJ IDE使用指南
下载IDEA 注释模板 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME}; ...
- window上使用Putty通过ssh远程连接并通过Xming实现X11图形界面功能
# 0.先确认远程服务器的ssh配置 >>> grep X11 /etc/ssh/sshd_config X11Forwarding yes #X11DisplayOffset 10 ...