平时的大大小小的项目中,基本上都需要与数据库打交道,会遇到各种各样的应用场景,本人主要遇到四种场景
1:数据库自动重连,例如mysql数据库中经常遇到服务器挂掉的情况,需要自动检测并重新连接数据库。
2:数据库自动清理早期数据,保证数据库中为最新的数据,而容量有限。
3:数据实时同步云端,客户端从云端同步数据到本地。
4:多线程批量执行sql语句。
为此,特意将各种应用场景封装成类,每个项目只需要传入对应参数即可。大大节省了开发时间。集成到pri文件中,每次项目引入即可。

DbTcpClientThread
/**
* 远程数据实时同步线程客户端,负责上传数据
* 1:可设置远程mysql数据库信息
* 2:自动重连数据库
* 3:可设置检测连接间隔
* 4:自动重置远程设备信息
* 5:所有消息都发送信号,可在信号槽函数中打印输出
*/

DbTcpServerThread
/**
* 远程数据实时同步线程服务端,负责下载数据
* 1:可设置远程mysql数据库信息
* 2:自动重连数据库
* 3:可设置检测连接间隔
* 4:可设置要查询的表名
* 5:所有消息都发送信号,可在信号槽函数中打印输出
* 6:返回数据结果严格按照字段顺序
* 7:返回的数据同时包含关键字字段数据
* 8:提供接口可对远程数据库执行sql语句
* 9:提供接口可对远程数据库获取对应表数据
*/

DbTcpDataThread
/**
* 本地数据同步到远程数据库线程
* 1:可设置远程mysql数据库信息
* 2:可设置本地mysql数据库信息
* 3:自动重连数据库,包括本地数据库和远程数据库
* 4:可设置检测连接间隔
* 5:所有消息都发送信号,可在信号槽函数中打印输出
* 6:支持优先执行sql语句
*/

DbWebServerThread
/**
* 远程数据实时同步线程服务端,负责下载数据
* 1:通过web方式访问网页获取返回值
* 2:可以拓展支持更多种支持方式
* 3:可设置检测连接间隔
* 4:可设置要查询的表名
* 5:所有消息都发送信号,可在信号槽函数中打印输出
* 6:返回数据结果严格按照字段顺序
* 7:返回的数据同时包含关键字字段数据
*/

DbCountThread
/**
* 数据库通用翻页类
* 1:自动按照设定的每页多少行数据分页
* 2:只需要传入表名/字段集合/每页行数/翻页指示按钮/文字指示标签
* 3:提供公共静态方法绑定字段数据到下拉框
* 4:建议条件字段用数字类型的主键,速度极快
* 5:增加线程查询符合条件的记录总数,数据量巨大时候不会卡主界面
*/

DbLocalThread
/**
* 本地数据库打开、关闭、检查、重连
* 1:支持数据库自动重连
* 2:可设置检查数据库时间间隔
*/

DbExecSqlThread
/**
* 批量执行sql语句线程类
* 1:可设置对应数据库连接名称和sql语句
* 2:执行结果提供信号传出执行是否成功,执行条数,用时
*/

DbDelegate
/**
* 自定义委托类
* 1:可设置多种委托类型,例如文本框/下拉框/日期框等
* 2:可设置文本框是否密文显示
* 3:可设置默认数据,包括下拉框数据集合
* 4:提供值变化信号,比方说下拉框值改动触发
*/

DbCleanThread
/**
* 自动清理数据类
* 1:可设置要清理的对应数据库连接名称和表名
* 2:可设置条件字段
* 3:可设置排序字段
* 4:可设置最大保留的记录数
* 5:可设置执行自动清理的间隔
* 6:后期支持多个数据库和多个表
* 7:建议条件字段用数字类型的主键,速度极快
* 8:增加统计用字段名称设置
*/

Qt数据库集成应用封装的更多相关文章

  1. Qt封装QTcpServer参考资料--QT4中构建多线程的服务器

    首先说一下对多线程这个名词的理解过程.以前听说过很多次多线程这个词,而且往往与服务器联系起来,因此一直把多线程误解为服务器特有的功能:直到这次课程设计,仔细学习了一下多线程的机制,才知道真正的意思.简 ...

  2. Qt with OpenCascade

    Qt with OpenCascade 摘要Abstract:详细介绍了如何在Qt中使用OpenCascade. 关键字Key Words:Qt.OpenCascade 一.引言 Introducti ...

  3. 关于Qt

    什么是Qt Qt是一个针对桌面.嵌入式.移动设备的一个跨平台的应用程序开发框架,支持的平台包括Linux.OS X.Windows.VxWorks.QNX.Android.iOS.BlackBerry ...

  4. 【Qt】关于Qt【转】

    什么是Qt Qt是一个针对桌面.嵌入式.移动设备的一个跨平台的应用程序开发框架,支持的平台包括Linux.OS X.Windows.VxWorks.QNX.Android.iOS.BlackBerry ...

  5. Qt的版本历史

    发展史 Qt的第一个商业版本于1995年推出,随后Qt的发展就很快了,下面是Qt发展史上的一 些里程碑,从之前的Qt1.x开始到现在的Qt5.x. Qt1-3 版本 发布日期 1.40 10 July ...

  6. qt 总结

    Qt中的每个类,都有一个对应的同名头文件,其中包含其类定义.例如要使用QApplication类,则需要在程序中添加" #include <QApplication>" ...

  7. 如何才能学到Qt的精髓——信号槽之间的无关性,提供了绝佳的对象间通讯方式,QT的GUI全是自己的一套,并且完全开源,提供了一个绝好机会窥视gui具体实现

    姚冬,中老年程序员 叶韵.KY Xu.赵奋强 等人赞同 被邀请了很久了,一直在思考,今天终于下决心开始写回答. 这个问题的确是够大的,Qt的代码规模在整个开源世界里也是名列前茅的,这么大的项目其中的精 ...

  8. Qt 操作Excel

    Qt对Excel的数据读/写操作没有现存的类,需要使用QAxObject,下面是从网上下载下来的一个封装好的类,感觉还可以,一般情况下够用,拿来给大家分享. 头文件: #ifndef EXCELENG ...

  9. C++专题 - Qt是什么

    Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器.Qt是面向对象的框架,使用特殊的代码生成扩展(称 ...

随机推荐

  1. display:box和display:flex填坑之路

    背景分析:最近做移动端项目时,遇到一个常见的需求: 可以滑动的导航,如下图 虽然是很常见的一个布局,但在移动端没有做过,想当然的写下以下的样式,简单描述下: 父元素 width:100%: overf ...

  2. linux磁盘管理系列-软RAID的实现

    1 什么是RAID RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. R ...

  3. leetcode算法题1: 两个二进制数有多少位不相同?异或、位移、与运算的主场

    /* The Hamming distance between two integers is the number of positions at which the corresponding b ...

  4. JavaScript OOP(三):prototype原型对象(即构造函数的prototype属性)

    通过构造函数生成的实例化对象,无法共享属性或方法(即每个实例化对象上都有构造函数中的属性和方法):造成了一定的资源浪费 function Obj(name,age){ this.name=name; ...

  5. 初识分布式计算:从MapReduce到Yarn&Fuxi

      这些年,云计算.大数据的发展如火如荼,从早期的以MapReduce为代表的基于文件系统的离线数据计算,到以Spark为代表的内存计算,以及以Storm为代表的实时计算,还有图计算等等.只要数据规模 ...

  6. nefu 115 循环节

    斐波那契的整除 Problem:115 Time Limit:1000ms Memory Limit:65536K Description 已知斐波那契数列有如下递归定义,f(1)=1,f(2)=1, ...

  7. php提供的对称加密算法

    KEY 是之前定义的常量 Mcrypt::encrypt(); Mcrypt::decrypt(); defined('ROOT') or exit('Access Denied'); class M ...

  8. 实现一个websocket常驻进程服务

    由于工作的原因,近期调查了一下mac系统下常驻服务的接收websocket信息和创建进程的方法原理.将具体实现细节记录下来备忘. (一).准备工作 1.安装brew,在终端中输入: ruby -e & ...

  9. 关于O(logN)的正确理解

    学计算机的或许对O(logN)这个符号并不陌生,快排.堆排.归并等等排序的平均时间复杂度. 问题来了,之前一直有个歧义就是:logN的底数到底是多少? 这个问题搁置着并没有去深究,仅仅是想应该是2吧. ...

  10. A. Arrays(Codeforces Round #317 水题)

    A. Arrays time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...