0
public List<ColorModel> getAllColor() {
  String query = "SELECT * FROM COLOR";
  List<ColorModel> colors = getjdbcTemplate().query(query, new ColorMapper());
  return colors;
}

class ColorMapper implements RowMapper<Color> {
  public ColorModel mapRow(ResultSet rs, int rowNum) throws SQLException {
    ColorModel color = new ColorModel ();
    color.setId(rs.getInt("ID"));
    color.setName(rs.getString("color_name"));
  }
}

質問

LinkedHashMap<Integer, String>ではなくa を返すにはどうすればよいですかList<ColorModel>

4

2 に答える 2

3

結果をリストとして取得した後、簡単にマッピングを実行できます。

...
List<Color> colors = getjdbcTemplate().query(query, new ColorMapper());
Map<Integer, String> colorMap = new LinkedHashMap<Integer, String>();
for (Color color : colors) {
    colorMap.put(color.getId(), color.getName());
}
return colorMap;

または、次を指定できますRowCallbackHandler

final Map<Integer, String> colorMap = new LinkedHashMap<Integer, String>();
getJdbcTemplate().query(query, new RowCallbackHandler() {
    @Override
    public void processRow(ResultSet rs) {
        colorMap.put(rs.getInt("ID"), rs.getString("color_name"));
    }
});

Map<int, String>ジェネリック型引数をプリミティブ型にすることはできないため、Java でa を作成できないことに注意してください。

于 2013-05-15T19:11:57.730 に答える
0
public List<ColorModel> getAllColor() {
Map<Integer,String> map = LinkedHashMap<Integer, String>();    
  String query = "SELECT * FROM COLOR";
  List<Color> colors = getjdbcTemplate().query(query, new ColorMapper());
  for (Color color : colors) {
    colorMap.put(color.getId(), color.getName());
}
return map;
}
于 2013-05-15T19:12:52.360 に答える