以可移植的方式使用 DB Api
Posted
技术标签:
【中文标题】以可移植的方式使用 DB Api【英文标题】:Using DB Api in a portable manner 【发布时间】:2010-01-08 21:08:35 【问题描述】:我需要开发某种应用程序并在其中使用 DB。
假设我目前想在 Windows 上开发它,但是,几个月后我可能不得不将它迁移到 Linux。
我开始阅读一些关于它的内容,但无法找到我需要的内容。
是否有用于使用 DB 的通用/可移植/标准 api?
我读到有 ODBC、JDBC、iOBDC、unixODBC 吗?为什么所有这些都存在?
有人可以帮助我解决这个问题吗?
编辑 - 我正在使用 C++ - 所以请向那个方向提出建议,即使我会欣赏跨语言/跨平台的建议
【问题讨论】:
【参考方案1】:有一堆用于通用数据库访问的 C++“包装器”库,这是我最想知道的:
SOCI - 现代 C++ 语法,积极开发,与 boost 配合得很好,支持多个后端 OTL - 仅标头(模板),非常轻量级这两个都源于 Oracle 特定的工作,但现在至少支持几个其他数据库。 当然,您不能真正隐藏供应商差异,但这是一般law of leaky abstractions。
【讨论】:
【参考方案2】:只需将JDBC API 与 JDBC 驱动程序结合使用。不要使用 ODBC(桥接)驱动程序。
【讨论】:
【参考方案3】:如果您的数据库负载不是很重,我建议您使用SQLite。您只需要一个头文件和一个源文件(合并版本)。而且它非常便携。 我一直在 Windows 和 Linux 上使用它。
【讨论】:
以上是关于以可移植的方式使用 DB Api的主要内容,如果未能解决你的问题,请参考以下文章
以可移植数据格式保存/加载 scipy sparse csr_matrix
如果我以可移植性为目标,我应该对具有负值的字符使用带符号的字符吗?