urldatabase.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. // 上传成功后添加图片URL
  26. bool addImageUrl(const QString &domain, const QString &user, const QUrl &imageUrl);
  27. // 获取特定域名-用户的所有图片URL
  28. QList<QUrl> getImageUrls(const QString &domain, const QString &user);
  29. // 检查域名-用户对是否存在
  30. bool containsDomainUser(const QString &domain, const QString &user);
  31. private:
  32. static ImageManager* m_instance;
  33. static QMutex m_mutex;
  34. QSqlDatabase m_db;
  35. bool createTables();
  36. bool addDomain(const QString &domain);
  37. bool addUser(const QString &user);
  38. int getDomainId(const QString &domain);
  39. int getUserId(const QString &user);
  40. };
  41. #endif // URLDATABASE_H