JdbcTemplate和NamedParameterJdbcTemplate的区别

Posted by lizhikang on 2019-06-14

JdbcTemplate和NamedParameterJdbcTemplate的区别

  1. JdbcTemplate预编译位置是用”?”,NamedParameterJdbcTemplate预编译位置是用”:属性名”.
  2. JdbcTemplate设置参数使用的是的Object数组,NamedParameterJdbcTemplate使用的是MapSqlParameterSource

NamedParameterJdbcTemplate

1
2
3
4
5
6
7
8
9
10
@Resource
protected NamedParameterJdbcTemplate npJdbcTemplate;

String sql = baseSql +" and exam_id in (:asgmtIds) and exam_sponsor = :teacherId";
MapSqlParameterSource parameters = new MapSqlParameterSource();
List<Integer> collect =Arrays.stream(asgmtIds).map(Integer::valueOf)
.collect(Collectors.toList());
parameters.addValue("asgmtIds", collect);
parameters.addValue("teacherId", teacherId);
npJdbcTemplate.query(sql, parameters, new BeanPropertyRowMapper<(AsgmtsDO.class));

JdbcTemplate

1
2
3
4
5
6
@Resource
protected JdbcTemplate jdbcTemplate;

String sql = baseSql + "paper_id=?";
Object obj = new Object[]{asgmtId};
jdbcTemplate.query(sql,obj,new BeanPropertyRowMapper<>(PaperDO.class));

|