Spring SimpleJdbcInsert和JdbcTemplate的区别

6
我有一个需求,需要将一行数据插入到数据库中,并获取其键(Identity)。我考虑使用SimpleJdbcInsert。我传递了JdbcTemplate对象给我的SimpleJdbcInsert,并执行了executeAndReturnKey()方法。
同样可以通过设置PreparedStatement而不是参数映射的方式,使用JdbcTemplateupdate()方法来完成相同的操作。
我想知道在性能方面JdbcTemplate是否更好,是否应该优先使用它而不是SimpleJdbcInsert?如果是这样,那么它为什么具有更高的性能?
注意:我只插入单条记录,而不是批量插入。
谢谢。

4
为什么会有负评?我认为这个问题很值得问。 - SebastianRiemer
1个回答

11

SimpleJdbcInsert与JdbcTemplate的区别

来自docs.spring.io

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

注意:所有其他方法都在底层使用JdbcTemplate

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

如果您要使用SimpleJdbcInsert,那么实际插入由JdbcTemplate处理。因此,在性能方面,SimpleJdbcInsert肯定不能比JdbcTemplate更好。

因此,在性能方面,您无法通过使用SimpleJdbcInsert获得好处。

但通过使用SimpleJdbcInsert执行多个表的插入操作绝对比JdbcTemplate类更具优势。可能有一些情况,您希望在许多表中插入数据,而且您可能想要编写更少的代码。在这些情况下,使用SimpleJdbcInsert可以是一个非常好的选择。请参阅此示例以了解详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接