zoukankan      html  css  js  c++  java
  • Qt数据库集成应用封装

    平时的大大小小的项目中,基本上都需要与数据库打交道,会遇到各种各样的应用场景,本人主要遇到四种场景
    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:增加统计用字段名称设置
    */

  • 相关阅读:
    你必须要知道的架构知识~第一章 什么是项目架构
    Linq下的distinct()比SQLServer下的distinct更强大,更自由,呵呵
    你必须要知道的架构知识~第二章 代码是否面向对象,要看你的继承怎么用
    hdu 4500 小Q系列故事——屌丝的逆袭
    [置顶] Android九环刀之RatingBar之评委请亮分
    DNS 解析出错导致 MySQL 无法连接
    把iis服务关掉,将Session值存到数据库中继续运行
    回顾过去。。展望未来
    Android巴士转发
    linux网络编程之socket(十二):select函数的并发限制和 poll 函数应用举例
  • 原文地址:https://www.cnblogs.com/feiyangqingyun/p/6985569.html
Copyright © 2011-2022 走看看