java.sql与mysql.jdbc
在开发连接到数据库的java应用程序时,我们似乎有两种选择:java.sql与mysql.jdbc,java,mysql,jdbc,Java,Mysql,Jdbc,在开发连接到数据库的java应用程序时,我们似乎有两种选择: 使用标准的java.sql类 使用特定于供应商的类(比如我们有com.mysql.jdbc.Connection和java.sql.Connection) 建议使用哪一种?假设我目前正在使用mysql。但将来我可能会转向甲骨文。使用特定于供应商的实现是否会提高性能?永远不要使用特定于供应商的代码,始终使用标准api(JDBC),以后它将易于维护,并且易于跨数据库移植。供应商特定代码的性能优势可以忽略不计,您可以更好地处理优化的查询
- 使用标准的
类java.sql
- 使用特定于供应商的类(比如我们有
和com.mysql.jdbc.Connection
)李>java.sql.Connection
建议使用哪一种?假设我目前正在使用mysql。但将来我可能会转向甲骨文。使用特定于供应商的实现是否会提高性能?永远不要使用特定于供应商的代码,始终使用标准api(JDBC),以后它将易于维护,并且易于跨数据库移植。供应商特定代码的性能优势可以忽略不计,您可以更好地处理优化的查询、索引、缓存等。永远不要使用供应商特定代码,始终使用标准api(JDBC),以后它将易于维护,也易于跨数据库移植。供应商特定代码的性能优势可以忽略不计,您可以更好地使用优化的查询、索引、缓存等。在大多数情况下,您不会注意到性能差异 java.sql包代表了不同数据库之间最常见的分母,而特定于供应商的包还公开了一些数据库后端独有的功能。但是,当您希望在以后打开切换数据库后端的选项时,无论如何都应该避免这些操作,因为新数据库可能没有等效的功能,您需要以完全不同的方式解决问题,这最终可能需要对整个应用程序进行一些大规模重构 tl;dr:当您想打开切换到Oracle或任何其他SQL数据库的选项时,请使用java.SQL
甚至更好:使用对象关系映射框架(如Hibernate)为您进行数据库抽象。他们需要一段时间来适应,但之后您将能够以更少的工时实现数据库功能,切换数据库后端将是配置文件中的一行更改。在大多数情况下,您不会注意到性能差异 java.sql包代表了不同数据库之间最常见的分母,而特定于供应商的包还公开了一些数据库后端独有的功能。但是,当您希望在以后打开切换数据库后端的选项时,无论如何都应该避免这些操作,因为新数据库可能没有等效的功能,您需要以完全不同的方式解决问题,这最终可能需要对整个应用程序进行一些大规模重构 tl;dr:当您想打开切换到Oracle或任何其他SQL数据库的选项时,请使用java.SQL
甚至更好:使用对象关系映射框架(如Hibernate)为您进行数据库抽象。他们需要一段时间来适应,但之后您将能够以更少的工时实现数据库功能,切换数据库后端将是配置文件中的一行更改。对于JDBC,您总是“使用”供应商实现,因为JDBC只是一组接口。也就是说:通常只使用
java.sql
和javax.sql
中定义的接口以获得最佳可移植性。对于JDBC,您总是“使用”供应商实现,因为JDBC只是一组接口。也就是说:一般来说,为了实现最佳的可移植性,只使用java.sql
和javax.sql
中定义的接口。我同意。我参加过一些项目,其中团队假设只使用数据库x。后来,添加了另一个数据库y,开发人员必须删除所有数据库x代码或为数据库y编写另一个接口。我同意。我参加过一些项目,其中团队假设只使用数据库x。稍后,将添加另一个数据库y,开发人员必须删除所有数据库x代码或为数据库y编写另一个接口。