我相信ODBC已经达到了在数据库引擎和操作系统上更可靠和可移植的程度。如果考虑使用直接RDBMS API,则速度优化的机会并不太多。
此外,ODBC抽象确实使源代码更具可移植性,因此迁移到新的RDBMS不需要完整的代码重写!
尽管如此,使用直接API可以通过删除抽象层来执行ODBC,并且特定的RDBMS低级别约束可以提供对特定RDBMS完整功能的访问。
你怎么看待这个?
答案 0 :(得分:3)
通过ODBC发送的查询不是真正可移植的,除非您使用可怕的ODBC Escape Sequences。即使这样,“可移植”部分也只是SQL语法的一小部分(例如,没有DDL)。
坦率地说,我从没见过一个项目在这方面取得成功。它们最多支持一组经过测试的驱动程序,比如SQL / Oracle / DB2,就是这样。更好的方法是抽象应用程序数据访问层,并为您支持的每个后端提供不同的实现。答案 1 :(得分:1)
我认为在使用ORM框架时会有更好的整体灵活性,比如Hibernate等(取决于编程环境)......