这是我的DAO代码
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public JSONObject getdata(UserBean userBean)
{
JSONObject jsonObject = new JSONObject();
return this.jdbcTemplate.queryForObject("select username from customer", new RowMapper<JSONObject>() {
@Override
public JSONObject mapRow(ResultSet rs, int rowNum) throws SQLException
{
jsonObject.put("username",rs.getString("username"));
return jsonObject;
}
});
}
这是我的控制器代码
@SuppressWarnings("unchecked")
@RequestMapping(value="/doLogin")
public ModelAndView doLogin(@ModelAttribute @Valid UserBean userBean,BindingResult result)
{
ModelAndView view = new ModelAndView("login");
if(!result.hasFieldErrors())
{
if(!combatService.authenticateUser(userBean))
{
result.addError(new ObjectError("err", "Invalid Credentials"));
}
else
{
if(retrieveService.getdata(userBean) != null)
{
JSONObject responseArray=new JSONObject();
responseArray.put("usernames",retrieveService.getdata(userBean));
return new ModelAndView("welcomes", responseArray);
}
}
}
return view;
}
这就是错误
消息请求处理失败;嵌套异常为org。springframework。道。IncorrectResultSizeDataAccessException:结果大小不正确:预期为1,实际为10
您的查询会直接从客户中选择用户名,这意味着此查询将返回所有用户名。据推测,您的数据库中当前有10条记录。
您需要运行SELECT username From客户WHERE(某事)
。
您还没有粘贴您的用户bean
代码,但假设其中有一个
getUserId()
方法,您可以执行如下操作:返回这个。jdbcTemplate。queryForObject(“从用户ID=?”的客户中选择用户名”,新建行映射器
我正在使用cassandra 3.11.11。它运行良好,但现在当我在下面运行查询时显示此错误。重要的是要说应用程序中没有任何变化。
我使用Jdbctemplate从数据库中检索单个字符串值。以下是我的方法。 在我的场景中,查询完全可能不被击中,所以我的问题是如何绕过以下错误消息。 在我看来,我应该返回一个空值,而不是抛出一个异常。我怎么才能修好这个?提前谢了。
我在测试环境方面工作。
当我提交复制数据时,我出现了以下错误,这里是代码… 和DAO类。 这个错误来了,任何人都可以帮助解决这个问题。
问题内容: 我正在使用Jdbctemplate从数据库中检索单个String值。这是我的方法。 在我的情况下,完全可以在查询中不击中,所以我的问题是如何解决以下错误消息。 在我看来,我应该只返回null而不是抛出异常。我怎样才能解决这个问题?提前致谢。 问题答案: 在JdbcTemplate,,中,所有这些方法都希望执行的查询将仅返回一行。如果没有行或多于一行,将导致。现在正确的方法不是捕获此异常
我已经构建了一个简单的登录页面,其中使用用户提供的用户名从数据库中获取所需的行,并根据用户提供的值检查凭据。 我面临的问题是,如果用户输入数据库中不存在的用户名值,我将面临此错误 org.springframework.dao.EmptyResultDataAccess异常: 不正确的结果大小: 预期的 1, 实际的 0 这意味着我的数据库没有任何具有所需用户名的行。 代码: 索引页: 用户道(其