使用NamedParameterJdbcTemplate将命名参数添加到以前工作的更新时的NoSuchMethodError

时间:2014-05-09 15:15:54

标签: java mysql spring jdbc named-parameters

我能够使用MySQLSpringMVC成功连接到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;

}

0 个答案:

没有答案