qt6以上版本是使用在线下载器的,后期对组件的添加可以使用下载器进行添加。
使用qt自带的更新组件时,记得用cmd打开,使用国内镜像源进行下载,这样速度会大大提升。
1.关系数据库的组织结构
mysql和oracle 是对应的服务器端,Qt对应的是客户端,其实就是一个C/S结构,通过Qt或者第三方的客户端,通过sql语句就可以操作服务器端的数据了。
在我们使用Qt去操作数据库时,Qt这个框架其实是给我们提供了很多连接数据库服务器的驱动的,但是在高版本的qt中这些驱动需要我们自己去编译,官方只是给我们提供了这些驱动相关的源代码。需要将.cpp文件编译成动态库或者静态库,有了这些动态库,就可以根据Qt提供的类连接到相应,其他的关系型数据库上。这样就可以通过客户端对数据库进行操作。 非关系型数据库的操作不需要sql语句。
row 行 column列
为什么数据库服务器需要绑定端口?
C(客户端)和S(服务器)通信就是一个套接字通信,服务器端启动的时候需要绑定本地ip和端口。也就是客户端通过端口与数据库连接,就可以登陆到服务器上了。
二进制数据包括音频,视频,软件安装包等都是二进制文件
对于数据库操作流程主要分为:
1.在项目管理文件(.pro)中,增加数据库模块
2.查看Qt中对数据库的驱动的类型的支持
3.连接和打开数据库
4.访问数据库
5.关闭数据库
QSqlquery类
exec方法的返回值是bool类型,如果执行成功了,返回的是true,如果失败返回的是false。
什么时候需要对返回值进行判定呢? 有三种情况
-
insert语句 update语句 delete语句
如果执行的是查询语句,就会在QSqlquery类中得到一个结果集,然后通过while遍历结果集,对于表结构来说,每个记录,也就是每行,每调用一次next方法就会得到一条记录。
while(query.next()) //遍历数据 next 返回true,说明可以得到记录值,没有得到,返回false;
//结果集遍历完,也返回的是false,或者空的结果集,返回false
通过value方法,取出每一个字段对应的数值。 index从0开始计数的。
只要是Qt里面支持的数据类型,都可以通过QVariant类进行封装,QVariant类再转成其他具体的数据类型。
SQLite和MySQL的区别
数据库在QT中的应用: 数据库操作和更新数据到QT控件
知识点一: 数据库操作:更新和删除
知识点二:更新数据到QT控件
## QT数据库模型高级接口QsqlQueryModel使用和改造