引起org.springframework.dao.InvalidDataAccessApiUsageException: No value supplied for the SQL parameter的原因是使用net.framework.base.dao.BaseDao.namedParameterJdbcTemplate中的方法运行sql增删改查的时候有时需要传参数,如果使用命名的方式传参,而没为之赋值的时候就报这个错。
例如:INSERT INTO tb_portshoreline_use (use_function) VALUES (: use_function)
代码执行上面sql的时候没为 :use_function指定值。
可以参考以下代码:
String sql = "SELECT * FROM TEST WHERE F1>:time and F2<:time";
Map params = new HashMap();
params.addValue("time", new Date());
NamedParameterJdbcTemplate jdbcTemplate = null;
jdbcTemplate = new NamedParameterJdbcTemplate(getJdbcTemplate());
List reslut = jdbcTemplate.query(sql, params);