JDBC 模板的查询结果均是以对象的形式返回。根据返回对象类型的不同,可以将查询
分为两类:简单对象查询,与自定义对象查询。
简单对象查询:查询结果为 String、Integer 等简单对象类型,或该类型做为元素的集合
类型,如 List<String>等。
自定义对象查询:查询结果为自定义类型,如 User 等,或该类型做为元素的集合类型,
如 List<User>等。
(1 )简单对象查询
常用的简单对象查询方法有:查询结果为单个对象的 queryForObject()与查询结果为 List
的 queryForList()。
pubic T queryForObject (String sql, Class<T> type, Object... args)
pubic List<T> queryForList (String sql, Class<T> type, Object... args)
(2 )自定义对象查询
常用的自定义对象查询方法有:查询结果为单个对象的 queryForObject()与查询结果为
List 的 query()。
pubic T queryForObject (String sql, RowMapper<T> m , Object... args)
pubic List<T> query (String sql, RowMapper<T > m, Object... args)
注意,RowMapper 为记录映射接口,用于将查询结果集中每一条记录包装为指定对象。
该接口中有一个方法需要实现:
public Object mapRow(ResultSet rs, int rowNum)
参数 rowNum 表示总的结果集中当前行的行号,但参数 rs 并不表示总的结果集,而是表示 rowNum 所代表的当前行的记录所定义的结果集,仅仅是当前行的结果。
一般,该方法体中就是实现将查询结果中当前行的数据包装为一个指定对象。
JdbcTemplate 对象是多例的,即系统会为每一个使用模板对象的线程(方法)创建一个
JdbcTemplate 实例,并且在该线程(方法)结束时,自动释放 JdbcTemplate 实例。所以在每
次使用 JdbcTemplate 对象时,都需要通过 getJdbcTemplate()方法获取。