如何在C ++中实现强大的数据持久层?

时间:2016-04-05 11:00:02

标签: c++ design-patterns database-connection dao data-access-layer

我第一次为我的公司用C ++创建一个庞大的程序,我想创建一个好的模式来连接到我的MySql数据库。我有这些问题:

  

- 我无法决定应该使用哪种模式,DAO,   存储库,UnitOfWork,工厂..

     

- 我无法在C ++中找到一个很好的数据访问模式示例,我知道它应该独立于语言,但我甚至找不到强大的功能   具有良好异常处理等的DAO模式示例...通常是   在非常小的环境中只有两个类(obj1-> obj2)。

如果有人知道好消息或任何提示,我会很高兴= D

提前致谢。

2 个答案:

答案 0 :(得分:1)

我的建议是搜索c ++ ORM(对象关系映射)在Java上有很多ORM或DAL解决方案,如Hibernate,Datanucleus,SQLite ..

我们正在使用Datanucleus,我们对此感到满意,但我不认为datanucleus支持c ++。 Imho创建DAL表格是不必要的。

答案 1 :(得分:1)

多年前我遇到了同样的问题。 Wikipedia中的C ++ ORM列表非常简短,最有希望的产品是GPL下的,或者你必须购买它。

我们决定开发自己的ORM。它有几种企业设计模式。我们选择obd使用的方式:您的表格是从简单的类中描述的。对象的持久性和访问权限是从数据库管理器处理的。最昂贵的待办事项是编写自己的查询界面(如果你没有在你的代码中键入clear sql)。