java.sql vs mysql.jdbc

时间:2013-01-04 08:33:21

标签: java mysql jdbc

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

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

建议使用哪一个?说我目前正在使用mysql。但是将来我可能会转向oracle。使用特定于供应商的实施是否有任何性能奖励?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

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

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