テンプレートパラメータマップを使用している場合JdbcTemplateが渡さ

JdbcTemplateクエリにテンプレートを使用する最近のプロジェクト:

クエリパラメータは、例に以下のコードを固定する場合:

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

それが2つの場合に発生すると、ここでパラメータの数が固定されている場合、複数のパラメータがあってもよく、時間インターフェース高度照会(クエリ不明)ページが表示されている場合。この場合には、このクエリ、コードエラー、2つの未満のクエリ結果が、プロジェクトは、高度なクエリインターフェイスが必要ですが、現在の状況は、この時間は、あなたが考慮すべきNamedParameterJdbcTemplateクエリに関連付けられたマルチ表です。

  NamedParameterJdbcTemplateはNamedParameterJdbcTemplateは機能を名前を付けることができ、メインJdbcTemplateパラメータに比べ増加し、JdbcTemplateがNamedParameterJdbcTemplateを行うことができますので、能力がある、JdbcTemplateが含まれています。代わりに、X:NamedParameterJdbcTemplateは、使用を名前付きパラメータを提供しますか?

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

このように、結果の状態にもはや心配エラーやチェックが取得できない、良い方法、メッセージ交換を発見した、個人の能力を制限しました。

公開された23元の記事 ウォン称賛7 ビュー20000 +

おすすめ

転載: blog.csdn.net/ghd602338792/article/details/89469455