Jan69 :
I want to pass the car names as a bind variable (changes at runtimme) How to achieve that .
Java Version 1.7
private JdbcTemplate jdbcTemplate;
public Collection<Cars> findAll(){
String sql = "SELECT NAME, YEAR, TYPE FROM CARS where NAME in ('Honda','Audi','Benz')";
List<Cars> carsList = new ArrayList<Cars>();
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql);
for (Map row : rows) {
Cars car = new Cars();
car.setName(String.valueOf(row.get("NAME")));
car.setType(String.valueOf(row.get("TYPE")));
car.setYear(String.valueOf(row.get("YEAR")));
carsList.add(car);
}
return carsList;
}
Darshan Mehta :
Use named parameters as explained here, e.g.:
String sql = "SELECT NAME, YEAR, TYPE FROM CARS where NAME in (:cars)";
List<Cars> carsList = new ArrayList<Cars>();
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(datasource);
List<String> carNames = new ArrayList<String>();
for(Car car : carList){
carNames.add(car.getName());
}
SqlParameterSource namedParameters = new MapSqlParameterSource("cars", carNames);
namedParameterJdbcTemplate.queryForObject(sql, namedParameters, ResponseType.class);
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=459175&siteId=1