DBStorage.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef DBSTORAGE_H
  2. #define DBSTORAGE_H
  3. #include "DBStorage_global.h"
  4. #include "Client.h"
  5. #include <QJsonObject>
  6. #include <QSqlQuery>
  7. #include <QObject>
  8. #include <QMap>
  9. class DBSTORAGE_EXPORT DBStorage:public Client
  10. {
  11. // Q_OBJECT
  12. public:
  13. DBStorage();
  14. ~DBStorage();
  15. virtual void Run(const ConsumerInfo& ci);
  16. virtual void OnData(const QString& user, const QString& key, const QVariant& val);
  17. virtual void setLoader(QLibrary*);
  18. private:
  19. void close();
  20. // bool GetTableColumnTypes();
  21. virtual int open(QString type,QString wsServer,QString wsDBName,
  22. QString wsUser,QString wsPassword) ;
  23. // virtual int open(QString wsDBFile,QString type = "QSQLITE") ;
  24. virtual bool isConnected() ;
  25. // virtual QSqlQuery query(QString strSql) ;
  26. virtual bool excSql(QStringList sqlList,int& idNew) ;
  27. virtual bool excSql(QString strSql) ;
  28. QSqlQuery query(QString strSql);
  29. virtual void run();
  30. void pushData();
  31. bool insert2Data(const QString& key, const QMap<QString, QJsonObject>& data);
  32. // MQTTClient* mqtt = nullptr;
  33. // std::list<std::string>dataItems;
  34. // std::unordered_multimap<std::string, std::string>topicsMap;
  35. // std::unordered_map<std::string, QJsonObject>dataMap;
  36. QString driver; // 用于自动重连
  37. // QString serverIp; // 用于自动重连
  38. QString usr = "root";
  39. QString passwd = "N6pNXbZjspDRqNGnxMmc";
  40. QString dbtype;
  41. QString server;
  42. QString DBName;
  43. // QString dstTable;
  44. // QString tableColumns;
  45. struct ColumnDef{
  46. QString name;
  47. QString from;
  48. QString to;
  49. };
  50. struct TargetTable{
  51. QList<QString> sourceTables;
  52. QList<ColumnDef> columnDefs;
  53. QString columns;
  54. };
  55. QMap<QString, TargetTable>targetTableMap;
  56. QMap<QString, QString> sourceTableMap;
  57. // private:
  58. // std::map<QString,std::map<QString,QString>> mapTableColumns;
  59. // std::map<QString,QList<QString>> mapTableColumns_Ex;
  60. // std::map<QString,QList<QString>> mapTableColumns_Alias_Ex;
  61. // std::map<QString,std::map<QString,QString>> mapAlias2Name; // 字段对应一个别名,上层转来的是别名,
  62. // std::map<QString,std::map<QString,QString>> mapName2Alias; // 根据字段名和表,找别名
  63. // std::map<QString,QString> mapTableSeparate;
  64. // std::map<QString,QString> mapExistTables; // 用一个map来,来管理,日期与表,创建后,则停止
  65. signals:
  66. void received();
  67. };
  68. extern "C" {//一定要添加上
  69. DBSTORAGE_EXPORT Client* instance();
  70. DBSTORAGE_EXPORT void destroy(Client*);
  71. }
  72. #endif // DBSTORAGE_H