springframework.dao.EmptyResultDataAccessException
在尝试从sql server数据库中选择数据时,这里是我编写的代码。任何人都可以建议如何使用查询界面从数据库中选择数据吗?
public int getRedempRequestId(RedemptionResponseBean redemptionResponse)
throws ParseException {
final Timestamp redempIdFromCsv = getRedeemDate(redemptionResponse);
int participantId = redemptionResponse.getOcpEventMemberId();
System.out.println(redempIdFromCsv);
System.out.println(participantId);
int res = jdbcTemplate.queryForInt("SELECT RR.REDEMPTION_REQUEST_ID "
+ "FROM dbo.REDEMPTION_REQUEST RR WITH (NOLOCK)"
+ "WHERE RR.SENT_DATE = ? AND "
+ "RR.OEDEF_OCP_EVENT_MEMBER_ID = ? ", new Object[] {
redempIdFromCsv, participantId });
System.out.println(res+"-----------");
return res;
}
有人能告诉我这里有什么问题吗?
答案 0 :(得分:8)
如果您希望不返回任何数据,则不应使用jdbcTemplate.queryForInt(...)
,因为该方法需要执行的查询将返回一个整数值。基本上,这就是EmptyResultDataAccessException
告诉你的内容;它的Javadoc说:
当预期结果至少有一行(或元素)但实际返回零行(或元素)时,抛出数据访问异常。
相反,您应该使用query(...)
中的JdbcTemplate
方法之一,它允许返回零行。