九、Qt C++ 数据库开发

《一、QT的前世今生》

《二、QT下载、安装及问题解决(windows系统)》
《三、Qt Creator使用》​​​

《四、Qt 的第一个demo-CSDN博客》

《五、带登录窗体的demo》

《六、新建窗体时,几种窗体的区别》

《七、Qt 信号和槽》

八、Qt C++ 毕业设计

九、Qt C++ 数据库开发

十、Qt 操作PDF文件-CSDN博客

本章节我们介绍数据库相关的操作,并开发一个用户管理的功能,包括用户的增、删、改、查。通过本章节,大家可以学会如何使用sqlite数据库,及sqlite数据库操作函数的封装,还有动态调用窗体、新建窗体的布局等内容。

一、在pro文件中加入sql的引用。

二、在全局变量头文件中,加入对sqliteDb类的声明

这行代码 extern sqliteDb dbSqlite 的意思是在global.h中声明了一个名为 dbSqlite 的外部变量类。关键字 extern 表示这个声明是外部的,即它的定义(分配内存空间)将在其他源文件中。

这样的声明通常用于在多个源文件之间共享同一个全局变量。在包含这个声明的源文件中,你不需要为 dbSqlite 分配内存空间,只需要告诉编译器它的存在,并在其他源文件中提供其定义。

在main.cpp源文件中定义这个变量,并初始化打开连接了数据库:

sqliteDb dbSqlite; // 提供外部变量的定义

这样在另的窗体文件中不需要再声明及实例化sqliteDb类,dbSqlite 就可以在多个源文件中使用,而且这些源文件共享同一个 dbSqlite 实例。这在大型项目中,多个源文件需要访问同一个全局变量时很有用。可以保证本程序和数据库文件的连接唯一性,不会在每一个用到数据库的地方都打开一个连接,这样会造成资源混乱。

三、数据库操作类sqliteDb

用于与 SQLite 数据库进行交互。包含一些方法和属性,以便执行数据库查询、插入、更新和删除等操作。下图展示包含的基本结构:

通过将数据库打开、关闭、查询、插入、更新和删除等操作封装成类,主要优势包括:

1.模块化和结构清晰: 类的使用使得数据库操作的相关代码可以被组织成一个模块,使得代码结构更加清晰、模块化。这有助于降低代码的复杂性,使得代码更易读、易维护。

2.代码复用: 通过封装数据库操作到一个类中,可以轻松地在应用程序的不同部分重复使用相同的数据库操作逻辑。这样可以避免在代码中多次编写相同的数据库连接、查询和更新的代码,提高了代码的可重用性。

以下是对sqlite操作类核心代码的说明

将原生的query对象转换成便于操作的QList> 哈希集合:

四、登录窗体中数据库的使用

以下这种select 方式 不推荐,只会从一定程度上避免有sql注入漏洞,大家在正式的软件开发中需要引起注意。大家在程序中拼写sql语句时,一定要注意单引号和双引号的使用区别,有的同学稍不留神多写一个单引号,sql语句就不会被执行正确。

大家在写sql语句的时候,如果不太熟悉,可以建议下载一个sqlite数据库的编辑工具,如SQLite Expert

很好用的一个小工具,能更直观的编辑数据库文件。下载地址:https://download.csdn.net/download/zhouhui1982/88743983

五、用户管理窗体

别忘了在上边引用#include "global.h" 因为跟数据库有关的全局变量在此文件中。否则下边的dbSqlite变量会报错。

查询用户

删除用户

修改和新增用户在另一个窗体frmuseredit中

六、动态创建及调用窗体

七、运行效果

相关推荐
麻辣韭菜2 小时前
网络基础 【HTTP】
网络·c++·http
阿史大杯茶2 小时前
Codeforces Round 976 (Div. 2 ABCDE题)视频讲解
数据结构·c++·算法
转调2 小时前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
Java探秘者2 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
2301_786964363 小时前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase
wdxylb3 小时前
使用C++的OpenSSL 库实现 AES 加密和解密文件
开发语言·c++·算法
Geek之路3 小时前
QT系统学习篇(1)
开发语言·qt·学习
阿维的博客日记4 小时前
图文并茂解释水平分表,垂直分表,水平分库,垂直分库
数据库·分库分表
CSP126364 小时前
特别节目————集训总结
c++
程序猿阿伟4 小时前
《C++游戏人工智能开发:开启智能游戏新纪元》
c++·人工智能·游戏