我做了两种测试方法。一个使用JdbcTemplate进行查询,而另一个使用NamedParameterJDBCTemplate。
使用NamedParameterJdbcTemplate:
@Autowired
JdbcTemplate jdbcTemplate;
public Student findById(long id) {
NamedParameterJdbcTemplate apptemplate = new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource());
return apptemplate.queryForObject("select * from student where id="+id, Collections.emptyMap(),
new BeanPropertyRowMapper< Student >(Student.class));
}
使用JdbcTemplate
@Autowired
JdbcTemplate jdbcTemplate;
public Student findById(long id) {
return jdbcTemplate.queryForObject("select * from student where id=?", new Object[] {
id
},
new BeanPropertyRowMapper< Student >(Student.class));
}
我正在使用以下切入点进行拦截:
对于JdbcTemplate:
@Pointcut("execution(* org.springframework.jdbc.core.JdbcOperations+.*(..))")
public void forJdbcTemplate() {
}
对于NamedParameterJdbcTemplate:
@Pointcut("execution(* org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations+.*(..))")
public void forNamedParameterJdbcTemplate() {
}
为什么我的JdbcTemplate切入点有效,但NamedParameterJdbcTemplate的切入点无效?