状況:私は春MVCベースのWebアプリケーションを設計していますが、私はそれが3列id
、property
、property value
で構成されていcustomers
と呼ばれるテーブルを持っています。春のMVC Webアプリケーションでオブジェクトの作成を減らすためにマップを使用する方法は?
id
はprimary key
ではありません。
以下は、私が使用していますModel
クラスです:
public class prop {
private String id;
private String property;
private String property_value;
/*setter and getters of these three variables ...*/
}
と私のダオは次のとおりです。
@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;
}
}
そして、私のMapper
クラスは次のとおりです。
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;
}
}
問題:今すぐid = 1のシナリオがあります4つのプロパティを持つので、4つの対応する行があり、4つのモデルオブジェクトが作成されます。
id = 1のプロパティが100のプロパティの場合、100 model
オブジェクトが作成され、非効率的です。 = 1 one Model
オブジェクトを作成する必要があります、私はmap
を使ってみましたが、正しく実装できませんでした。
注:UIで、私はすべてのレコードを表示しています彼らはDB
私はあなたのデザインをよく理解していません。このクエリで判断すると、 'select * from customers where id =? 「あなたはどのように4つの結果を得られますか? –
私はidがプライマリキーではないと言っていますので、上記のクエリは特定のIDを持つすべてのレコードを取得します –