JdbcTemplate pasó cuando se utiliza el mapa los parámetros de plantilla

Los proyectos más recientes que utilizan la plantilla de consulta JdbcTemplate:

Cuando los parámetros de consulta fijados ejemplo el siguiente código:

 @Override
    public boolean checkExistChildren(String stdCategoryId) {
        String sql ="select  count(1) as num from t_std_category t " +
                " left join t_std_category t1  on t.std_category_id = t1.std_category_parent_id " +
                " where t.std_category_id=?";
        Map<String, Object> map = jdbcTemplate.queryForMap(sql,new Object[]{stdCategoryId});
        String count = map.get("num").toString();
        return Integer.parseInt(count) > 0 ? true : false;
    }

Aquí, cuando se fija el número de parámetros, una pluralidad de parámetros puede ser, si el tiempo que la consulta avanzada interfaz (consulta incierta) aparece la página. En este caso, esta consulta con la que se produce en dos casos, un Código de error, a menos de 2 resultados de la consulta, pero el proyecto requiere interfaz de consulta avanzada, la situación actual es un multi-tabla asociada a la consulta, esta vez, se debe considerar NamedParameterJdbcTemplate;

  El NamedParameterJdbcTemplate contiene una JdbcTemplate, por lo que puede hacer JdbcTemplate NamedParameterJdbcTemplate son competentes, NamedParameterJdbcTemplate aumenta en relación con los principales parámetros JdbcTemplate se pueden nombrar funciones. NamedParameterJdbcTemplate proporciona parámetros con nombre, utilice: x en su lugar?

if(StringHelper.isNotEmpty(workflowNodeHandler)){
            stringBuilder.append(" and t3.workflow_node_handler=:workflowNodeHandler  ");
            map.put("workflowNodeHandler",workflowNodeHandler);
        }
        if(StringHelper.isNotEmpty(standardNameCn)){
            stringBuilder.append(" and ts.standard_name_cn like:standardNameCn");
            map.put("standardNameCn","%"+standardNameCn+"%");
        }
        if(StringHelper.isNotEmpty(standardNameEn)){
            stringBuilder.append(" and ts.standard_name_en like :standardNameEn");
            map.put("standardNameEn","%"+standardNameEn+"%");
        }if(StringHelper.isNotEmpty(standardState)){
            stringBuilder.append(" and ts.standard_state <=:standardState");
            map.put("standardState",standardState);
        }
        if(StringHelper.isEmptyOrWhiteSpace(standardState)){
            stringBuilder.append(" and  ts.standard_state in ('3','4')");
        }
        stringBuilder.append(" and ts.standard_state>'0'");
        stringBuilder.append(" order by t2.create_time asc ");
        String sql = SqlSupport.generatePagingSql(DatabaseType.MYSQL,stringBuilder.toString(),pageNumber,pageSize);
        int totalElement = namedParameterJdbcTemplate.queryForList(sql,map).size();
        contentInfo.put("totalElement",totalElement);
        contentInfo.put("content",namedParameterJdbcTemplate.queryForList(sql,map));

De esta manera, el error ya no se preocupa o comprobar el estado de los resultados no se pueden recuperar, limitados a título personal, han encontrado una manera buena, el intercambio de mensajes.

Publicado 23 artículos originales · ganado elogios 7 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/ghd602338792/article/details/89469455
Recomendado
Clasificación