在java中使用jdbc做数据库的操作,一般我只到数据库的一张表会对应一个实体bean,现在我有一个问题就是遇到有主从关系的表的时候,设计实体bean的时候怎么做,例如:student(id,name,psd,sex,age,classID);
classroom(id,name,stunum,headteacher......);问题1:
学生的里面有一个外键classID,再设计实体student的时候该怎么处理,给他一个int(或String)的属性对应这个外键,还是一个classroom类的对象对应这个外键?问题2:
假设现在要做数据库的查询操作,表格中显示所有student的基本信息和他的班主任。
那么,如果使用classroom类对应的外键的或,操作的返回结果可以List<student>就可以,显示事取这个对象的信息就行,但是如果是int对应的外键的话,查询数据库怎么,分两次?,如果一次的话,返回的结果怎么封装传到前台显示?
数据库对象Bean主从关系

解决方案 »

  1.   

    请参考我的基于spring,security的开源项目
    http://blog.csdn.net/shadowsick
      

  2.   

    要配置双向关系 用主表的实体作为属性  从表的实体做Set集合. 还有 必须设置关联的ID  
      

  3.   

    就一个类而言我觉得用classroom对象做这个属性可能更方便也更符合逻辑但无论如何,你查询的时候获得classroom信息都需要个join或者两个query,这和你student类的封装无关
      

  4.   

    就是说join的结果包含student信息和teacher怎么返回,如果只有student的话,就像我说的List<student>,如果在student中有teacher属性的话,就和一还是这样返回,是不是方便点?
      

  5.   

    就是说join的结果包含student信息和teacher怎么返回,如果只有student的话,就像我说的List<student>,如果在student中有teacher属性的话,就和一还是这样返回,是不是方便点?确实如此,上面没有真正明白你的意思。而且那些orm也是这样做的
      

  6.   

    在照片实体 private Photo photo;//照片  在相册多对一private Set albums = new HashSet(0);//相册这个例子充分的表明了你需要的
      

  7.   

    今天使用了hibernate框架来建立了一个工程试了试,使用它的orm 得到的结果就是在字表的关联的外键对会对应为主表的实体类,这个我很能理解这个做法的好处和方便,但是主表里面是类似于private Set albums = new HashSet(0);这种,这里对这个有什么用处?
    就譬如说有一张teacher表,里面有老师的信息,还有一张stud表,里面是学生信息,其中有一个teacher_id为外键,这个时候我们会发现生成的实体类会是 class Stud {  private Teacher t;},class Teacher{
    private Set sub = new HashSet(0);}这里对于这个Teacher类中的Set的作用不太理解,他的存在是为了什么?