CPlusPlus数据访问层设计

三层架构是软件架构中常用的架构,它从上往下分为表示层、业务逻辑层、数据访问层。下面重点介绍 C++ 程序的数据访问层设计。

什么是 DAO

在计算机软件中,数据访问对象(data access object,DAO)是为某种类型的数据库或其他持久性机制提供一个抽象接口的对象。通过映射应用程序对持久层的调用,DAO 提供一些特定的数据操作,而无需暴露数据库细节。这种隔离支持单一功能原则。

数据访问对象模式(Data Access Object Pattern)或 DAO 模式用于把低级的数据访问 API 或操作从高级的业务服务中分离出来。

数据访问对象模式的参与者主要有:

  • 数据访问对象接口(Data Access Object Interface) - 该接口定义了在一个模型对象上要执行的标准操作。
  • 数据访问对象实体类(Data Access Object concrete class) - 该类实现了上述的接口。该类负责从数据源获取数据,数据源可以是数据库,也可以是 xml,或者是其他的存储机制。
  • 模型对象/数值对象(Model Object/Value Object, VO) - 该对象是简单的 POJO,包含了 get/set 方法来存储通过使用 DAO 类检索到的数据。

主流的 ORM 框架

C++ 中主流的 ORM 框架有以下几个:

其中,LiteSQL 和 ODB 不依赖于特定的框架,而 QxOrm 依赖于 Qt,Wt::Dbo 依赖于 Wt。由于使用QT进行开发,最终决定使用QxOrm。本想使用QDB,但是在QT上开发太麻烦。

参考链接

  1. C++实现的DAO(数据访问对象模式),by Jinkai.
  2. QxOrm使用教程(ORM for C++ 对象关系映射),by ljjyy.
  3. 浅谈C++三层架构,by eric0803.
  4. C++架构之美:设计卓越应用,by qt.video.
  5. Dao层设计,by c++天下第一.
  6. 如何设计一个简单的 C++ ORM,by bot-man-jl.
  7. C++ ORM ODB入门,by aliyun.
  8. TinyORM:一个简单的C++ ORM框架,by davidpp.
  9. C++版本 ORM 访问数据库之ODB 的Window环境编译(一),by Software_hul.
  10. Windows下Qt5.5.1中使用ODB,by 严慈善.
  11. 【一】ODB - C++ 访问数据库的利器–Hello World On Windows(Version-24),by C++程序员Carea.
  12. error LNK2001: 无法解析的外部符号 “__declspec(dllimport) public 解决办法,by 鸡啄米的时光机.
  13. qxBlog project - blog management in C++,by QxOrm.
  14. Qt三层架构应用程序设计及开发,by wyh20171105.
  15. Qt项目架构经验总结,by cps666.
  16. Qt SQL的使用 MySQL,by 一杯清酒邀明月.