【发布时间】:2020-10-22 21:36:32
【问题描述】:
我创建了一个名为 calculate 的方法,它使用带有 select count* 的查询,如果 count 等于 90,则返回一个布尔值。
- 我可以将
namedJdbcTemplate.update调用包装在if语句中以检查count 的值,如下所示? - 我收到错误消息,指出我无法在 namedJdbcTemplate 上使用更新方法:
Method executeUpdate cannot be used for query. ERRORCODE=-4476, SQLSTATE=null; nested exception is com.ibm.db2.jcc.am.SqlException: [jcc][10104][10942][4.14.113] Method executeUpdate cannot be used for query. ERRORCODE=-4476, SQLSTATE=null
有没有更好的方法来检查查询是否像这样返回 90? :
if(namedJdbcTemplate.update(CALCULATE_QUERY, paramMap) == 90)
private NamedParameterJdbcTemplate namedJdbcTemplate;
public Assessment process(Assessment assessment) throws Exception {
if (calculate(assessment) == true){
return assessment;
}else{
return null;
}
}
public boolean calculate(Assessment assessment){
final String CALCULATE_QUERY ="SELECT COUNT(*) FROM " +
"(SELECT BAL_AS_OF_DT FROM MYTABLE " +
"WHERE CUST_UID = :customerId )";
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("customerId", assessment.getCustUid());
try{
if(namedJdbcTemplate.update(CALCULATE_QUERY, paramMap) == 90){
return true;
}
}catch (Exception e){
log.error(e.toString());
}
return false;
}
【问题讨论】: