Spring JDBC 的 sql 语句中 in 语句的使用方法
public List<String> getPermissionByRole(Set<String> roles) { NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate); String sql = "select permission from roles_permissions where role_name in (:roleNameList)"; MapSqlParameterSource parameterSource = new MapSqlParameterSource(); parameterSource.addValue("roleNameList", new ArrayList<>(roles)); List<String> permissionList = namedParameterJdbcTemplate.queryForList(sql, parameterSource, String.class); return permissionList; }
public List<NcisReportEnerty> ncisEntities getData(String batchNo, String jgdm, String year) { String sqlNcis = "SELECT * FROM(select min(create_time) min_time,max(submit_time) max_time from ncis_report WHERE institution_id = :jgdm and status = 1)a,(SELECT * FROM ncis_report WHERE institution_id = :jgdm and status = 1 and year in (:yearList))b ORDER BY year"; NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate); MapSqlParameterSource parameterSource = new MapSqlParameterSource(); parameterSource.addValue("jgdm", jgdm); parameterSource.addValue("yearList", yearList); return namedParameterJdbcTemplate.query(sqlNcis, parameterSource, new BeanPropertyRowMapper<>(NcisReportEnerty.class)); }
jdbcTemplate 使用 NamedParameterJdbcTemplate
参数使用 MapSqlParameterSource 进行封装
sql 语句中使用 in (:mapkey),mapkey 是 MapSqlParameterSource 中的 key