【问题标题】:Spring SimpleJdbcInsert vs JdbcTemplateSpring SimpleJdbcInsert 与 JdbcTemplate
【发布时间】:2015-12-08 20:20:15
【问题描述】:

我有一个要求,我必须在数据库中插入一行并取回密钥(身份)。我想为此使用 SimpleJdbcInsert。我将JdbcTemplate 的对象传递给我的SimpleJdbcInsert 并执行方法executeAndReturnKey()

同样可以使用JdbcTemplateupdate()方法通过设置PreparedStatement而不是Parameters Map来完成。

我只想知道 JdbcTemplate 在性能方面是否更好,我应该使用它而不是 SimpleJdbcInsert 吗?如果是这样,那么它性能优越的原因是什么?

注意:我插入的不是一批记录,而是一条记录。

谢谢

【问题讨论】:

  • 为什么投反对票?我觉得这个问题问的有道理。

标签: spring performance spring-jdbc jdbctemplate simplejdbcinsert


【解决方案1】:

SimpleJdbcInsert 与 JdbcTemplate

来自docs.spring.io

JdbcTemplate 是经典的 Spring JDBC 方法,也是最流行的。这种“最低级别”的方法和所有其他方法都在幕后使用 JdbcTemplate

注意:所有其他人都在后台使用 JdbcTemplate

SimpleJdbcInsert 优化数据库元数据以限制必要配置的数量。这种方法简化了编码,因此您只需提供表或过程的名称,并提供与列名匹配的参数映射。这仅在数据库提供足够的元数据时才有效。如果数据库不提供此元数据,则必须提供参数的显式配置。

如果您要使用 SimpleJdbcInsert,那么实际的插入也是使用 JdbcTemplate 处理的。所以就性能而言,SimpleJdbcInsert 绝对不能比 JdbcTemplate 更好。

所以在性能方面,使用 SimpleJdbcInsert 并不能带来好处。

但是使用 SimpleJdbcInsert 对多个表执行插入操作肯定比 JdbcTemplate 类具有更好的能力。在某些情况下,您可能希望在其中插入数据很多表,您可能希望减少编码。在这些情况下,使用 SimpleJdbcInsert 可能是一个很好的选择。请参阅此example 以了解这一点。

【讨论】:

    猜你喜欢
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 2013-07-25
    • 1970-01-01
    • 2019-11-14
    • 2020-10-12
    • 1970-01-01
    相关资源
    最近更新 更多