NamedParameterJdbcTemplate

NamedParameterJdbcTemplate

在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定.
在 Spring JDBC 框架中, 绑定 SQL 参数的另一种选择是使用具名参数(named parameter).
那么什么是具名参数?
具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代
具名参数只在 NamedParameterJdbcTemplate 中得到支持。NamedParameterJdbcTemplate可以使用全部jdbcTemplate方法,除此之外,我们来看看使用它的具名参数案例:

Map<String, Object> param = new HashMap<>();
        param.put("operatorId", operatorId);
        param.put("outOrderIds", outOrderIds);
        String sql = "SELECT * FROM t_order_evcs WHERE operator_id = :operatorId AND out_order_id in (:outOrderIds)";

        return new NamedParameterJdbcTemplate(jdbcTemplate).query(sql, param, new BeanPropertyRowMapper<OrderEvcs>(OrderEvcs.class));
原文地址:https://www.cnblogs.com/zongJianKun/p/10737114.html