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

经验分享 程序员 微信小程序 职场和发展