什么是RowMapper,ResultSetExtractor,绑定变量和查询类型?

时间:2011-12-07 03:58:55

标签: java spring dao model-binding jdbctemplate

我知道如何使用JDBC模板和DAO,但我仍然有疑问:

  1. RowMapperResultSetExtractor有什么用?
  2. 什么是绑定变量?
  3. 查询是一种列表吗?

1 个答案:

答案 0 :(得分:14)

Q1:在对数据库进行排队时,这些接口与RowCallbackHandler经常使用的JdbcTemplate一起使用。您实现哪个接口,如何实现它以及在JdbcTemplate中使用哪种方法取决于您的数据库以及您希望执行哪种查询。来自Spring API doc和一些其他评论:

RowMapper

  

JdbcTemplate用于基于每行映射ResultSet的行的接口。此接口的实现执行将每行映射到结果对象的实际工作

即。 RowMapper通常用于在数据库中的行与结果对象之间存在一对一关系时映射对象。

ResultSetExtractor

  

ResultSetExtractor对象通常是无状态的,因此可以重复使用

ResultSetExtractor的实现通常会从多行中创建一个对象,随后会返回该对象。它是无状态的,因为实现类不保留方法调用之间的任何状态。

RowCallbackHandler

  

此接口的实现执行处理每一行的实际工作[...]与ResultSetExtractor相比,RowCallbackHandler对象通常是有状态的:它将结果状态保持在对象中,以供稍后检查。< / p>

RowCallbackHandler用于更新或删除行等查询。此外,当您需要跟踪ResultSet中的状态时,例如RowCountCallbackHandler中的行数,就会使用它。