5

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

同样可以使用通过设置而不是参数映射的update()方法来完成。JdbcTemplatePreparedStatement

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

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

谢谢

4

1 回答 1

11

SimpleJdbcInsert 与 JdbcTemplate

来自docs.spring.io

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

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

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

如果您要使用 A SimpleJdbcInsert,那么实际插入也正在使用 JdbcTemplate 处理。所以在性能方面 SimpleJdbcInsert 绝对不能比 JdbcTemplate 更好。

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

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

于 2015-09-12T11:40:25.830 回答