我想从simplejdbctemplate查询表中获取所有行,并希望将它们添加到列表中。最好的方法是什么? 我试过这个:
List<String> carbrands = (List<String>) jdbcTemplate.queryForList("select brand from cars", String.class);
所以我期待一个字符串列表,如:
toyota
hyundai
bmw
benz
...
但我不能让这个工作。如果我尝试为多种类型执行此操作,我会陷入困境:
List<Car> values = (List<Car>) jdbcTemplate.queryForList("select name,brand,value from cars", Car.class);
这也不起作用。我希望它能归还汽车,我将其定义为名称,品牌,价值。但是......我已经用Google搜索,无法找到解决方案。有什么建议吗?
答案 0 :(得分:3)
1)查询1是正确的,应该有效。
2)查询2应该是
List<Car> list = jdbcTemplate.query("select name,brand,value from cars", new BeanPropertyRowMapper<Car>(Car.class));
Car应该是一个有效的JavaBean - 必须有一个公共的无参数构造函数和公共setter / getters
public class Car {
String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
...
}
替代地,您可以将汽车视为列的地图
List<Map<String, Object>> cars = jdbcTemplate.queryForList("select * from cars");
for(Map car : cars) {
String brand = (String)car.get("brand");
String name = (String)car.getName("name");
....
}