ServiceBase.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include <QObject>
  3. #include "QxOrm.h"
  4. #include "charcode.h"
  5. class ServiceBase : public QObject
  6. {
  7. Q_OBJECT
  8. public:
  9. ServiceBase(QObject *parent);
  10. ~ServiceBase();
  11. //************************************
  12. // Method: add
  13. // FullName: ServiceBase::add
  14. // Returns: void
  15. // Parameter: T & t 实体对象
  16. // Parameter: QSqlDatabase * database 默认为空,QxOrm内部自动开启事务,如果多条记录操作,则需传入有效的database,有调用者控制事务
  17. //************************************
  18. template<typename T>
  19. static void add(T &t, QSqlDatabase *database = nullptr)
  20. {
  21. QSqlError error = qx::dao::insert(t, database);
  22. if (error.isValid())
  23. throw MessageException("插入失败:" + error.text());
  24. }
  25. //************************************
  26. // Method: updateById
  27. // FullName: ServiceBase::updateById
  28. // Returns: void
  29. // Parameter: T & t 实体对象
  30. // Parameter: QSqlDatabase * database 默认为空,QxOrm内部自动开启事务,如果多条记录操作,则需传入有效的database,有调用者控制事务
  31. //************************************
  32. template<typename T>
  33. static void updateById(T &t, QSqlDatabase *database = nullptr)
  34. {
  35. QSqlError error = qx::dao::update(t, database);
  36. if (error.isValid())
  37. throw MessageException("更新失败:" + error.text());
  38. }
  39. //************************************
  40. // Method: deleteById
  41. // FullName: ServiceBase::deleteById
  42. // Returns: void
  43. // Parameter: T & t 实体对象
  44. // Parameter: QSqlDatabase * database 默认为空,QxOrm内部自动开启事务,如果多条记录操作,则需传入有效的database,有调用者控制事务
  45. //************************************
  46. template<typename T>
  47. static void deleteById(T &t, QSqlDatabase *database = nullptr)
  48. {
  49. QSqlError error = qx::dao::delete_by_id(t, database);
  50. if (error.isValid())
  51. throw MessageException("删除失败:" + error.text());
  52. }
  53. };