2

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);

これも機能しません。名前、ブランド、価値として定義したCarsを返品してほしい。しかし...私はグーグルで調べて、解決策を見つけることができません。助言がありますか?

4

1 に答える 1

3

1) クエリ 1 は正しく、動作するはずです。

2) クエリ 2 は

List<Car> list = jdbcTemplate.query("select name,brand,value from cars", new BeanPropertyRowMapper<Car>(Car.class));

Car は有効な JavaBean である必要があります - 引数なしのパブリック コンストラクターとパブリック セッター/ゲッターが必要です

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");
     ....
}
于 2013-02-16T04:13:48.427 に答える