java - How to pass list of values as a parameter to IN clause using jdbc template -
this question has answer here:
i want pass car names bind variable (changes @ runtimme) how achieve .
java version 1.7
private jdbctemplate jdbctemplate; public collection<cars> findall(){ string sql = "select name, year, type cars name in ('honda','audi','benz')"; list<cars> carslist = new arraylist<cars>(); list<map<string, object>> rows = jdbctemplate.queryforlist(sql); (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; }
use named parameters explained here, e.g.:
string sql = "select name, year, type cars 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);
Comments
Post a Comment