【问题标题】:Java developer learning enterprise c++. Equivalent of JDBC abstraction? [closed]Java开发者学习企业c++。相当于 JDBC 抽象? [关闭]
【发布时间】:2010-08-01 08:06:31
【问题描述】:

我真的很喜欢 Java 中的 JDBC 抽象。我不在乎我连接到什么数据库类型,或者正在使用什么驱动程序。这些都是在 DataSource 对象中设置的,一旦完成,我们就使用连接。它是一个用于提交/回滚、执行事务的一致 API,您只需学习一次,然后继续您的生活。 MySQL/Oracle - 不用担心,都是一样的(除了 SQL 不同)

四个问题: 1. c++/c 最流行的等价物是什么。 2. 什么是最好的? 3. 是否有任何 api 反映了 java api 的连接?非常相似的东西? 4. 我非常喜欢 Java 中经常使用的 Dao/DaoImpl 模式。人们在 C++ 中做同样的模式吗?

谢谢大家!

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为它同时提出了几个问题,因为它过于基于意见,而且它在征求建议。

标签: java c++ api jdbc connection


【解决方案1】:

跨平台数据库连接的标准是ODBC。然而,这是一个非常大的 C API,可能需要一些时间来适应(但一旦你习惯了它就会很好地工作)。有很多 C++ 包装器库,但我不能推荐其中任何一个,因为我一直使用自己的包装器。使用 SO google 搜索 https://*.com/search 搜索“c++ 数据库库”以查看有关此主题的许多问题。

【讨论】:

    【解决方案2】:

    ODBC 它是问题 1 的答案。(JDBC API 是根据 ODBC 建模的。)

    【讨论】:

      【解决方案3】:

      C++ 中没有等价物。 ODBC 是最接近的东西。

      但是,ODBC 不仅仅是一个数据库接口(调用级接口),它还定义了一个底层连接协议,因此您需要在数据库服务器端有一个中间件或驱动程序才能使用 ODBC。

      另一方面,JDBC 只是一个标准的编程接口,它可以使用本地协议与数据库进行通信,而无需任何驱动程序。一些 JDBC 实现通过 ODBC(所谓的 JDBC-ODBC 桥驱动程序)与数据库通信。

      【讨论】: