-
用BeanPropertyRowMapper简单将结果集映射到List
List<BasicBean> query = jdbcTemplate.query("", new BeanPropertyRowMapper<BasicBean>(BasicBean.class));
说明:结果集列名应该与Bean里面的字段属性保持一致
-
用ResultSetExtractor遍历得到的结果集
jdbcTemplate.query("", new ResultSetExtractor<List<BasicBean>>() {
@Override
public List<BasicBean> extractData(ResultSet rs) throws SQLException, DataAccessException {
List<BasicBean> res=new ArrayList<BasicBean>();
while(rs.next()) {
//遍历结果集ResultSet
}
return res;
}});
说明:
1.这种方式更具有灵活性,复杂逻辑推荐使用。
2.接口里面的泛型(<List<BasicBean>>)就是此方法的返回值了。
3.此回调对应于整个结果集,只会执行一次。
-
用RowCallbackHandler遍历得到的结果集
private void initZbOrg() {
final List<UaacOrg> zbdw = new ArrayList<UaacOrg>();
String sqlzbdw="select * from t_zbxx_dw";
this.sysjdbcTemplate.query(sqlzbdw, new RowCallbackHandler()
{
//每一行执行一次次回调函数
public void processRow(ResultSet rs)
throws SQLException
{
UaacOrg org = new UaacOrg();
org.setCode(rs.getString("CODE"));
org.setMc(rs.getString("NAME"));
zbdw.add(org);
}
});
CacheManager.putCache("ZBDW", zbdw);
}
说明:这种方法与ResultSetExtractor类似,不同之处在于执行回调的时机,此法每当有一行结果就执行一次。
-
单条结果集映射到map
Map<String, Object> map = jdbcTemplate.queryForMap(sql.toString(), new Object[] {timestr});
说明:仅仅适用于单条结果集,多条会报错