我能够使用MySQL
和SpringMVC
成功连接到JDBC
数据库,我可以运行查询和更新没有问题,直到我尝试添加命名参数。任何命名参数都会出现以下异常:
nested exception is java.lang.NoSuchMethodError: org.springframework.jdbc.core.StatementCreatorUtils.javaTypeToSqlParameterType
(Ljava/lang/Class;)I] with root cause
我遍历了参数并验证了id和值是否正确,并且与我在将文本直接编码到查询中时使用的文本相匹配。
感谢您对此进行调试:
失败的代码:
public boolean create(Beer beer) {
System.out.println("Creating beer in Dao");
System.out.println(beer);
BeanPropertySqlParameterSource params = new BeanPropertySqlParameterSource(beer);
return jdbc.update("insert into beer (beer_name) values (:name)", params) == 1;
}
有效的代码:
public boolean create(Beer beer) {
System.out.println("Creating beer in Dao");
System.out.println(beer);
BeanPropertySqlParameterSource params = new BeanPropertySqlParameterSource(beer);
return jdbc.update("insert into beer (beer_name) values (\"honey porter\")", params) == 1;
}