SqlDBHelper.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "SqlDBHelper.h"
  2. #include <QApplication>
  3. #include <QMessageBox>
  4. bool SqlDBHelper::configFinished = false;
  5. bool SqlDBHelper::configFinished2 = false;
  6. QSqlDatabase SqlDBHelper::getDatabase(SqlDBHelper::SqlDBType dbType, const QString &connectionName)
  7. {
  8. switch (dbType) {
  9. case SqlDBHelper::SqlDBType::SQLITE3: {
  10. if (configFinished) {
  11. return SqlFactory::getInstance()->getDatabase();
  12. } else {
  13. QString databaseName = "./data/qfd.db";
  14. SqlFactory::DBSetting setting("QSQLITE", databaseName);
  15. configFinished = true;
  16. return SqlFactory::getInstance()->config(setting, connectionName)->getDatabase();
  17. }
  18. } break;
  19. case SqlDBHelper::SqlDBType::MYSQL: {
  20. if (configFinished) {
  21. return SqlFactory::getInstance()->getDatabase();
  22. } else {
  23. SqlFactory::DBSetting setting("QMYSQL", "localhost", 3306, "root", "123456", "qfd");
  24. configFinished = true;
  25. return SqlFactory::getInstance()->config(setting, connectionName)->getDatabase();
  26. }
  27. } break;
  28. }
  29. QMessageBox::critical(nullptr, QObject::tr("数据库连接异常"), QObject::tr("请检查数据库配置文件是否正常"));
  30. QApplication::exec();
  31. return SqlFactory::getInstance()->getDatabase(nullptr);
  32. }
  33. QSqlDatabase SqlDBHelper::getDatabase2(SqlDBHelper::SqlDBType dbType, const QString &connectionName)
  34. {
  35. switch (dbType) {
  36. case SqlDBHelper::SqlDBType::SQLITE3: {
  37. if (configFinished2) {
  38. return SqlFactory::getInstance2()->getDatabase();
  39. } else {
  40. QString databaseName = "./nodeData/node.db";
  41. SqlFactory::DBSetting setting("QSQLITE", databaseName);
  42. configFinished2 = true;
  43. return SqlFactory::getInstance2()->config(setting, connectionName)->getDatabase();
  44. }
  45. } break;
  46. case SqlDBHelper::SqlDBType::MYSQL: {
  47. if (configFinished2) {
  48. return SqlFactory::getInstance2()->getDatabase();
  49. } else {
  50. SqlFactory::DBSetting setting("QMYSQL", "localhost", 3306, "root", "123456", "qfd");
  51. configFinished2 = true;
  52. return SqlFactory::getInstance2()->config(setting, connectionName)->getDatabase();
  53. }
  54. } break;
  55. }
  56. QMessageBox::critical(nullptr, QObject::tr("数据库连接异常"), QObject::tr("请检查数据库配置文件是否正常"));
  57. QApplication::exec();
  58. return SqlFactory::getInstance2()->getDatabase(nullptr);
  59. }