0

在开发连接到数据库的 Java 应用程序时,我们似乎有两种选择:

  • 使用标准java.sql
  • 使用供应商特定的类(就像我们有com.mysql.jdbc.Connection并且我们也有java.sql.Connection)。

推荐使用哪一种?假设我目前正在使用 mysql。但是将来我可能会切换到oracle。使用供应商特定的实现是否有任何性能奖励?

4

2 回答 2

2

永远不要使用特定于供应商的代码,始终使用标准 api(JDBC),以后它将易于维护并且易于跨数据库移植。供应商特定代码的性能优势可以忽略不计,您可以更好地优化查询、索引、缓存等。

于 2013-01-04T08:40:36.777 回答
2

在大多数情况下,您不会注意到性能差异。

java.sql 包代表了不同数据库之间最常见的分母,而特定于供应商的包还公开了一些数据库后端独有的功能。但是,当您想保持选项打开以稍后切换数据库后端时,无论如何您都应该避免这些,因为新数据库可能没有等效的功能,您需要以完全不同的方式解决问题,这可能在最后需要对整个应用程序进行一些大规模的重构。

tl;dr:如果您想保持打开选项以切换到 Oracle 或任何其他 SQL 数据库,请使用 java.sql。

甚至更好:使用像 Hibernate 这样的对象关系映射框架来为您进行数据库抽象。他们需要一段时间来适应,但之后您将能够以更少的工时实现数据库功能,并且切换数据库后端将是配置文件中的一行更改。

于 2013-01-04T08:40:39.250 回答