目录
什么是一对一,一对多
一对一:代表一个对象对应一个对象,可以认为是 一个人对应一张身份证,一张身份证对应一个人
一对多:代表一个对象对应多个对象,可以认为一个班级对应多个学生
准备学生表和班级表
学生student和班级class是一对一的关系
班级class和学生student是一对多的关系
创建实体类
班级class实体类
import java.util.List;
public class BanJi {
private int classid;
private String classname;
private List<Student> slist;
public BanJi() {
super();
// TODO Auto-generated constructor stub
}
public BanJi(int classid, String classname, List<Student> slist) {
super();
this.classid = classid;
this.classname = classname;
this.slist = slist;
}
@Override
public String toString() {
return "BaJi [classid=" + classid + ", classname=" + classname + ", slist=" + slist + "]";
}
public int getClassid() {
return classid;
}
public void setClassid(int classid) {
this.classid = classid;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
public List<Student> getSlist() {
return slist;
}
public void setSlist(List<Student> slist) {
this.slist = slist;
}
}
学生student实体类
import java.util.Date;
public class Student {
private int sid;
private String sname;
private Date birthday;
private String ssex;
private int classid;
//外部属性
private BanJi bj;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int sid, String sname, Date birthday, String ssex, int classid, BanJi bj) {
super();
this.sid = sid;
this.sname = sname;
this.birthday = birthday;
this.ssex = ssex;
this.classid = classid;
this.bj = bj;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + ", birthday=" + birthday + ", ssex=" + ssex + ", classid="
+ classid + ", bj=" + bj + "]";
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
public int getClassid() {
return classid;
}
public void setClassid(int classid) {
this.classid = classid;
}
public BanJi getBj() {
return bj;
}
public void setBj(BanJi bj) {
this.bj = bj;
}
}
声明接口
班级接口
学生接口
xml配置文件
一个班级对应多个学生
一个学生对应一个班级
注意:1.接口名和xml配置文件名要一致
2.xml中select标签中id名要与接口中的方法名保持一致
测试
注解的方式
注解的方式进行一对一,一对多时可以省略xml配置文件,直接在接口中写注解,然后实现
注解这里我们就用上面的实体类
一对一:
一对多:
测试