SqlDBHelper.cpp 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. QSettings datasource("datasource.ini", QSettings::IniFormat);
  24. datasource.setIniCodec("UTF-8");
  25. QString url = datasource.value("DATASOURCE/url", "").toString();
  26. int port = datasource.value("DATASOURCE/port", "").toInt();
  27. QString username = datasource.value("DATASOURCE/username", "").toString();
  28. QString password = datasource.value("DATASOURCE/password", "").toString();
  29. QString database = datasource.value("DATASOURCE/database", "").toString();
  30. qDebug() << url << port << username << password << database;
  31. SqlFactory::DBSetting setting("QMYSQL", url, port, username, password, database);
  32. configFinished = true;
  33. return SqlFactory::getInstance()->config(setting, connectionName)->getDatabase();
  34. }
  35. } break;
  36. }
  37. QMessageBox::critical(nullptr, QObject::tr("数据库连接异常"), QObject::tr("请检查数据库配置文件是否正常"));
  38. QApplication::exec();
  39. return SqlFactory::getInstance()->getDatabase(nullptr);
  40. }
  41. QSqlDatabase SqlDBHelper::getDatabase2(SqlDBHelper::SqlDBType dbType, const QString &connectionName)
  42. {
  43. switch (dbType) {
  44. case SqlDBHelper::SqlDBType::SQLITE3: {
  45. if (configFinished2) {
  46. return SqlFactory::getInstance2()->getDatabase();
  47. } else {
  48. QString databaseName = "./nodeData/node.db";
  49. SqlFactory::DBSetting setting("QSQLITE", databaseName);
  50. configFinished2 = true;
  51. return SqlFactory::getInstance2()->config(setting, connectionName)->getDatabase();
  52. }
  53. } break;
  54. case SqlDBHelper::SqlDBType::MYSQL: {
  55. if (configFinished2) {
  56. return SqlFactory::getInstance2()->getDatabase();
  57. } else {
  58. SqlFactory::DBSetting setting("QMYSQL", "localhost", 3306, "root", "123456", "qfd");
  59. configFinished2 = true;
  60. return SqlFactory::getInstance2()->config(setting, connectionName)->getDatabase();
  61. }
  62. } break;
  63. }
  64. QMessageBox::critical(nullptr, QObject::tr("数据库连接异常"), QObject::tr("请检查数据库配置文件是否正常"));
  65. QApplication::exec();
  66. return SqlFactory::getInstance2()->getDatabase(nullptr);
  67. }