databasemanager.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "databasemanager.h"
  2. #include <QDebug>
  3. #include <QMessageBox>
  4. #include <QSqlError>
  5. #include "global.h"
  6. #include "logger.h"
  7. DatabaseManager& DatabaseManager::getInstance() {
  8. static DatabaseManager instance;
  9. return instance;
  10. }
  11. // 创建一个新的数据库连接
  12. DatabaseManager::DatabaseManager() : db(QSqlDatabase::addDatabase("QMYSQL")) {
  13. db.setHostName(databaseHost);
  14. db.setDatabaseName("pc_system");
  15. db.setUserName("root");
  16. db.setPassword("123456");
  17. if (!db.open()) {
  18. Logger::getInstance().error(
  19. QString("Mysql Connected error. host: %1, error: %2").arg(databaseHost, db.lastError().text()));
  20. QMessageBox::critical(nullptr, "错误",
  21. QString("无法连接数据库, 请联系开发人员。\n 错误: %1").arg(db.lastError().text()));
  22. throw std::runtime_error("Database connection failed: " + db.lastError().text().toStdString());
  23. }
  24. Logger::getInstance().info(QString("Mysql Connected. host: %1").arg(databaseHost));
  25. }
  26. DatabaseManager::~DatabaseManager() {
  27. if (db.isOpen()) {
  28. db.close();
  29. }
  30. }
  31. QSqlDatabase& DatabaseManager::getDatabase() { return db; }