【发布时间】:2018-04-16 20:32:20
【问题描述】:
我正在查看 Spring 文档。在 Class JdbcTemplate page,我有点困惑,因为这两种方法似乎在做同样的事情。它们的目的都是返回由 SQL 结果形成的对象。
<T> T queryForObject(java.lang.String sql,
java.lang.Object[] args,
RowMapper<T> rowMapper)
查询给定的 SQL 以从 SQL 和参数列表创建准备好的语句以绑定到查询,通过 RowMapper 将单个结果行映射到 Java 对象。
<T> T queryForObject(java.lang.String sql,
java.lang.Object[] args,
java.lang.Class<T> requiredType)
查询给定的 SQL 以从 SQL 创建准备好的语句和绑定到查询的参数列表,期望结果对象。
问题
他们的目的和我理解的一样吗?
如果是这样,为什么我们需要这两种方法?
如果不是,它们之间有什么区别?他们每个人都有典型的场景吗?
回答
所以从我们现在得到的答案来看。
requiredType 方法仅用于返回由 SQL 结果形成的对象。
使用 RowMapper 的方法允许我们 1.返回一个由SQL结果形成的对象,我们不需要结果中的类的每个变量 2. 在分配给结果对象之前进行复杂的验证或格式化,这在 java 中比在 SQL 中更容易完成
谢谢拉古。
如果有人有更深入的了解,请前往。非常感谢您的帮助。
【问题讨论】:
标签: java spring spring-mvc jdbc spring-jdbc