如何在 C++ 中实现强大的数据持久层?
Posted
技术标签:
【中文标题】如何在 C++ 中实现强大的数据持久层?【英文标题】:How do I implement a robust Data Persistence Layer in C++? 【发布时间】:2016-07-25 06:51:56 【问题描述】:我第一次用 C++ 为我的公司创建一个巨大的程序,我想创建一个很好的模式来连接到我的 mysql 数据库。我有这些问题:
-我无法决定应该使用哪种模式,DAO, 存储库、工作单元、工厂..
-我在 C++ 中找不到一个很好的数据访问模式示例,我知道它应该独立于语言,但我什至找不到一个健壮的 具有良好异常处理等的 DAO 模式示例......通常是 在非常小的环境中只有两个类(obj1->obj2)。
如果有人知道好的来源或任何提示,我会很高兴=D
提前致谢。
【问题讨论】:
【参考方案1】:我的建议是搜索 c++ ORM(Object Relational Mapping) 有很多关于 java 的 ORM 或 DAL 解决方案,如 Hibernate、Datanucleus、SQLite ..
我们正在使用 Datanucleus,对此我们很满意,但我认为 datanucleus 不支持 c++。恕我直言,创建 DAL 表单是不必要的。
【讨论】:
【参考方案2】:几年前我也遇到过同样的问题。 Wikipedia 中 C++ 的 ORM 列表很短,最有前途的产品是 GPL 下的,否则你必须购买。
我们决定开发自己的 ORM。它有几种企业设计模式。我们选择obd 使用的方式:您的表是从简单的类中描述的。对象的持久性和访问由数据库管理器处理。最昂贵的待办事项是编写自己的查询接口(如果您不想在代码中输入清晰的 sql)。
【讨论】:
以上是关于如何在 C++ 中实现强大的数据持久层?的主要内容,如果未能解决你的问题,请参考以下文章