Spring Jdbc使用like模糊查詢


    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;
    }    

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM