public List<WfConfigMVO> queryList(WfConfigMVO wfConfig) throws SysException {
StringBuffer sql = new StringBuffer();
sql.append("select WF_CONFIG_ID,WF_TEMPL_KEY,TIME_LIMIT,WF_NAME ");
sql.append("from wf_config ");
sql.append("where 1=1");
List<WfConfigMVO> resultList = null;
List<Object> params = new ArrayList<Object>();
try {
if (wfConfig != null) {
if (isNotBlank(wfConfig.getWfConfigId())) {
sql.append(" and WF_CONFIG_ID=?");
params.add(wfConfig.getWfConfigId());
}
if (isNotBlank(wfConfig.getWfTemplKey())) {
sql.append(" and WF_TEMPL_KEY=?");
params.add(wfConfig.getWfTemplKey());
}
if (isNotBlank(wfConfig.getTimeLimit())) {
sql.append(" and TIME_LIMIT=?");
params.add(wfConfig.getTimeLimit());
}
if (isNotBlank(wfConfig.getWfName())) {
//開始我使用了下面的這種方法
// sql.append(" and WF_NAME like '%?%'");
// params.add(wfConfig.getWfName()); 這樣做就會報SqlException
//sql.append(" and WF_NAME like %?%");這里不要單引號也是會報異常的
//正確的方法如下
sql.append(" and WF_NAME=?");
params.add("%"+wfConfig.getWfName()+"%");//把‘%’放進參數中傳遞進去OK
}
}
resultList = jdbcTemplate.query(sql.toString(),
params.toArray(),
new BeanPropertyRowMapper<WfConfigMVO>(WfConfigMVO.class));
} catch (DataAccessException e) {
e.printStackTrace();
logger.error("查詢WfConfig錯誤:{}", e.getMessage());
throw new SysException("10000", "查詢WfConfig錯誤", e);
}
return resultList;
}