0
比方说,我有一个数据库架构是这样的(没有足够的信誉发表图片) http://i.stack.imgur.com/9yT4v.png数据到一个Java对象
你怎么会这些表和它所有的数据连接到一个Java的目的?
我知道如何从该Person表中创建一个Java对象,但是如何使用下面的“addItem”方法来添加他在其他表中的所有项目(我知道这可能无效,但仅适用于解释我在找什么)?
public class Person {
private int id;
private String firstname;
private String lastname;
private List<Item> personItems = new ArrayList<Item>();
//getters and setters for id, firstname, lastname
public void addItem(Item item){
this.personItems.add(item);
}
}
我查询所有的东西一个人有这样的项目:
SELECT p.PersonID, p.Firstname, p.Lastname, i.name
FROM Person as p, PersonItem as pi, Item as i
WHERE p.PersonID=pi.PersonID AND pi.ItemID = i.ItemID AND p.PersonID=?;
因此,如果人有4项查询结果为4线。但我真正想要的是“i.name”列中的一行和所有结果。否则会出现“错误的结果大小:预期1,实际4”,并且将所有结果保存到列表中是很愚蠢的。
这是一种我迄今为止使用的从一个表格制作对象的样式。但是现在我需要从其他表格获取更多数据给这个对象。有没有简单的方法来实现这一点?
public Person findPerson(int id){
String sql = "select .. from .. where id=?";
Object[] parameters = new Object[]{id};
RowMapper<Person> mapper = new PersonRowMapper();
Person p = jdbcTemplate.queryForObject(sql, parameters, mapper);
return p;
}