在 NamedParameterJdbcTemplate 类型中不适用于参数

我想通过使用显示用户表中的所有数据NamedParameterJdbcTemplate,但它不起作用。它显示此错误:

  The method query(String, SqlParameterSource, ResultSetExtractor<T>) in the 
 type NamedParameterJdbcTemplate is not applicable for the arguments 
 (String, new RowMapper<User>(){})

报错图片: Dao类报错

DAO code:


private NamedParameterJdbcTemplate jdbc;


@Autowired

public void setDataSource(DataSource jdbc) {

    this.jdbc = new NamedParameterJdbcTemplate(jdbc);

}


public List<User> getAllUsers() {

    return jdbc.query("select * from user", BeanPropertyRowMapper.newInstance(User.class));

}

服务代码:


public List<User> getAllUsers() {

    return userDao.getAllUsers();

}

控制器代码:


@RequestMapping(value="/viewAllUser", method = RequestMethod.GET)

public String viewAllUser(Model model) {

    List<User>user = userServices.getAllUsers();

    model.addAttribute("user", user);

    return "viewAllUser";

}


函数式编程
浏览 223回答 1
1回答

慕莱坞森

似乎您的 jdbcTemplate 找不到具有此类签名的方法(两个 param , sqlstring , rowmapper )...并且找不到 map MapSqlParameterSource 参数尝试使用EmptySqlParameterSource.INSTANCEMapSqlParameterSource 参数(第二个方法参数)如下public List<User> getAllUsers() {&nbsp; &nbsp; return jdbc.query("select * from user", EmptySqlParameterSource.INSTANCE,&nbsp; &nbsp; &nbsp; &nbsp;BeanPropertyRowMapper.newInstance(User.class));}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java