在 spring 框架中使用 JdbcTemplate 比使用 NamedParameterJdbcTemplate 有什么优势?
What are the advantages of using JdbcTemplate over NamedParameterJdbcTemplate in spring framework?
我正在学习 spring 现在,从我到目前为止所学的内容来看,NamedParameterJdbcTemplate 似乎提供了与 JdbcTemplate 相同的功能,而且它允许您使用命名参数。
所以问题首先是,如果您始终可以改用 NamedParameterJdbcTemplate,那么您为什么还要使用 JdbcTemplate,这样一来,如果您假设最初不打算在 DAO 中使用命名参数,那么 class 但后来您决定使用它们的某些原因您将不需要调整整个 DAO class?
现在第二个问题是为什么他们首先要创建这个class,如果有一个提供命名参数功能的 JdbcTemplate 不是更好吗?
UPDATE - 原始响应在基础 JDBCTemplate
可以支持的内容及其工作方式方面不准确;这些年来我一直在处理太多的框架......这是一个更准确的版本:
总的来说,我怀疑是否有令人信服的理由使用 JdbcTemplate
class。
支持命名参数会产生一些开销。这通常需要将命名参数转换为位置参数以便与 JDBC 一起使用。如果您有很多参数,这可能会增加很多开销;如果你根本没有参数,那么它仍然会带来一些开销(必须检查字符串以查找命名参数)但在大多数情况下可能不会太多。
我正在学习 spring 现在,从我到目前为止所学的内容来看,NamedParameterJdbcTemplate 似乎提供了与 JdbcTemplate 相同的功能,而且它允许您使用命名参数。
所以问题首先是,如果您始终可以改用 NamedParameterJdbcTemplate,那么您为什么还要使用 JdbcTemplate,这样一来,如果您假设最初不打算在 DAO 中使用命名参数,那么 class 但后来您决定使用它们的某些原因您将不需要调整整个 DAO class?
现在第二个问题是为什么他们首先要创建这个class,如果有一个提供命名参数功能的 JdbcTemplate 不是更好吗?
UPDATE - 原始响应在基础 JDBCTemplate
可以支持的内容及其工作方式方面不准确;这些年来我一直在处理太多的框架......这是一个更准确的版本:
总的来说,我怀疑是否有令人信服的理由使用 JdbcTemplate
class。
支持命名参数会产生一些开销。这通常需要将命名参数转换为位置参数以便与 JDBC 一起使用。如果您有很多参数,这可能会增加很多开销;如果你根本没有参数,那么它仍然会带来一些开销(必须检查字符串以查找命名参数)但在大多数情况下可能不会太多。