Situation: Ich bin eine Feder MVC-basierten Web-App entwerfen, habe ich eine Tabelle customers
es besteht aus 3 Säulen id
, property
, property value
genannt.Wie verwende ich die Karte, um die Erstellung von Objekten im Frühjahr MVC Web App zu reduzieren?
id
ist nicht primary key
.
Es folgt die Model
Klasse verwende ich:
public class prop {
private String id;
private String property;
private String property_value;
/*setter and getters of these three variables ...*/
}
und mein Dao ist:
@Repository("Dao")
public class Dao implements{
@Autowired
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public List<Model> listProp(String id) {
final String sql = "select * from customers where id = ? ";
final List<Model> list = jdbcTemplate.query(sql, new Object[]{id}, new Mapper());
return list;
}
}
Und meine Mapper
Klasse:
public class Mapper implements RowMapper<Model> {
public Model mapRow(ResultSet rs, int rowNum) throws SQLException {
Model m = new Model();
m.setId(rs.getString(1));
m.setProperty(rs.getString(2));
m.setValue(rs.getString(3));
return wl;
}
}
Problem: Jetzt Ich habe ein Szenario, in dem id = 1 hat 4 Eigenschaften, so hat es 4 entsprechende Zeilen und 4 Modellobjekte werden erstellt,
wenn ID = 1 sagt 100 Eigenschaften, dann 100 model
Objekte erstellt werden, die ineffizient ist, möchte ich, dass für alle Zeilen mit ID = 1 ein Model
Objekt muss erstellt werden, versuchte ich mit map
aber konnte es nicht richtig implementieren kann jemand bitte helfen?
Hinweis: In UI i alle Datensätze bin Anzeige, wie sie vorhanden sind, in DB
Ich verstehe nicht ganz Ihr Design. Gemessen an dieser Abfrage: 'Select * von Kunden mit ID =? 'Wie kannst du 4 Ergebnisse haben? –
wie ich sagte ID ist nicht Primärschlüssel, so über Abfrage wird alle Datensätze abrufen, die eine bestimmte ID haben –