databasemanager.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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(QString("Mysql Connected error. host: %1, error: %2")
  19. .arg(databaseHost, db.lastError().text()));
  20. QMessageBox::critical(
  21. nullptr, "错误",
  22. QString("无法连接数据库, 请联系开发人员。\n 错误: %1").arg(db.lastError().text()));
  23. throw std::runtime_error("Database connection failed: " +
  24. db.lastError().text().toStdString());
  25. }
  26. Logger::getInstance().info(QString("Mysql Connected. host: %1").arg(databaseHost));
  27. }
  28. DatabaseManager::~DatabaseManager() {
  29. if (db.isOpen()) {
  30. db.close();
  31. }
  32. }
  33. QSqlDatabase& DatabaseManager::getDatabase() { return db; }