urldatabase.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef URLDATABASE_H
  2. #define URLDATABASE_H
  3. #include <QObject>
  4. #include <QSqlDatabase>
  5. #include <QSqlQuery>
  6. #include <QSqlError>
  7. #include <QDateTime>
  8. #include <QString>
  9. #include <QUrl>
  10. #include <QHash>
  11. #include <QMutex>
  12. #include <QStandardPaths>
  13. class ImageManager : public QObject
  14. {
  15. Q_OBJECT
  16. private:
  17. explicit ImageManager(QObject *parent = nullptr);
  18. ~ImageManager();
  19. public:
  20. static ImageManager* instance();
  21. // 初始化数据库连接
  22. bool initialize(const QString &dbPath);
  23. // 添加域名-用户对(不重复)
  24. bool addDomainUser(const QString &domain, const QString &user);
  25. // bool deleteDomainUser(const QString& domain, const QString& user);
  26. // 上传成功后添加图片URL
  27. bool addImageUrl(const QString &domain, const QString &user, const QUrl &imageUrl);
  28. bool removeImageUrl(const QString& domain, const QString& user, const QUrl& imageUrl);
  29. // 获取特定域名-用户的所有图片URL
  30. QList<QUrl> getImageUrls(const QString &domain, const QString &user);
  31. // 检查域名-用户对是否存在
  32. bool containsDomainUser(const QString &domain, const QString &user);
  33. private:
  34. static ImageManager* m_instance;
  35. static QMutex m_mutex;
  36. QSqlDatabase m_db;
  37. bool createTables();
  38. bool addDomain(const QString &domain);
  39. bool addUser(const QString &user);
  40. int getDomainId(const QString &domain);
  41. int getUserId(const QString &user);
  42. };
  43. #endif // URLDATABASE_H