Bad Sql Grammar Исключение весной JDBC - PullRequest
0 голосов
/ 24 октября 2018
Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [UPDATE customer SET phone=?, email=? WHERE username=?]; nested exception is java.sql.SQLException: No value specified for parameter 3

Это код контроллера

@RequestMapping(value="/editdetail", method = RequestMethod.POST)
    public ModelAndView editdetails(HttpServletRequest request, HttpServletResponse response, UserBean userBean,BindingResult result)
    {
        retrieveService.updates(userBean);
        return new ModelAndView("redirect:/welcomes");

    }

Это код реализации DAO

public String updates(UserBean userBean) 
    {
        String sql="UPDATE customer SET phone=?, email=? WHERE username=?";  
        jdbcTemplate.update(sql, userBean.getphone(), userBean.getemail());
        return null;
    }

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Мне кажется, что вы не предоставляете никакого значения для параметра 'username', когда запускаете операцию обновления jdbcTemplates.

0 голосов
/ 24 октября 2018
//in DAO class
private JdbcTemplate jdbcTemplate;
@autowired
@Qualifier(value="datasourceName")
public void setDataSource(DataSource dataSource)
{
  this.jdbcTemplate=new JdbcTemplate(dataSource)
}
public String updates(UserBean userBean) 
{
         String phone =userBean.getphone();
         String email=userBean.getemail();
         String username=userBean.getusername()
         Object[] params = { phone,email,username};
         int[] types = {Types.VARCHAR, Types.VARCHAR, Types.VARCHAR};
         private static final String sql = "UPDATE customer SET  phone=?, email=? WHERE username=?";
        int rows=jdbcTemplate.update(sql, params,types);
        return null;
 }
0 голосов
/ 24 октября 2018

Вам необходимо передать значение имени пользователя.

    String sql="UPDATE customer SET phone=?, email=? WHERE username=?";  
    jdbcTemplate.update(sql, userBean.getphone(), userBean.getemail(), <someUserNameHere>);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...