一个人一张身份证
card
public class Card {
private Integer id;
private String number;
private Person person;
public Card() {
}
public Card(Integer id, String number, Person person) {
this.id = id;
this.number = number;
this.person = person;
}
@Override
public String toString() {
return "Card{" +
"id=" + id +
", number='" + number + ''' +
", person=" + person +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
person
public class Person {
private Integer id;
private String name;
private Integer age;
public Person() {
}
public Person(Integer id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + ''' +
", age=" + age +
'}';
}
}
mapper文件
public interface oneToOne {
public List selectAll();
}
mapperXml文件
一对多
一个学生多个班
student
public class student {
private Integer id;
private String name;
private Integer age;
// private classes classes;
private List classes;
public student() {
}
classes
public class classes {
private Integer id;
private String name;
public classes() {
}
oneToMany
public interface oneToMany {
public List selectAll();
}
oneToMany.xml
多对多
一个学生对应多个课程,一个课程对应多个学生
student
public class student {
private Integer id;
private String name;
private Integer age;
private List courses;
course
public class course {
private Integer id;
private String name;
public course() {
}
ManyToMany
public interface ManyToMany {
public List selectAll();
}
ManyToMany.xml
注解开发 一对一
CardMapper
public interface CardMapper {
@Select("select * from card")
@Results({
@Result(column = "id",property = "id"),
@Result(column = "number",property = "number"),
@Result(
property = "person", //被包含对象的变量名
javaType = com.一对一.Person.class, //被包含实际数据类型
column = "pid", //根据查询出card表对person id查询
one=@One(select = "com.注解开发.一对一.personMapper.selectById")
)
})
public abstract List selectAll();
}
personMapper
public interface personMapper {
@Select("select * from person where id=#{id}")
public abstract List selectById(Integer id);
}
一对多
studentMapper
public interface studentMapper {
@Select("select * from student2")
@Results({
@Result(column = "id",property = "id"),
@Result(column = "name",property = "name"),
@Result(column = "age",property = "age"),
@Result(
property = "classes", //被包含对象的变量名
javaType = List.class, //被包含实际数据类型
column = "cid", //根据查询出card表对person id查询
many=@Many(select = "com.注解开发.一对多.ClassesMapper.selectById")
)
})
public abstract List selectAll();
}
ClassesMapper
public interface ClassesMapper {
@Select("select * from classes where id=#{id}")
public abstract List selectById();
}
多对多
StudentMapper
public interface StudentMapper {
@Select("select distinct s.id,s.name,s.age from student2 s,stu_cr sc where sc.sid=s.id")
@Results({
@Result(column = "id",property = "id"),
@Result(column = "name",property = "name"),
@Result(column = "age",property = "age"),
@Result(
property = "courses", //被包含对象的变量名
javaType = List.class, //被包含实际数据类型
column = "id", //根据查询出card表对person id查询
many=@Many(select = "com.注解开发.多对多.courseMapper.selectById")
)
})
public abstract List selectAll();
}
courseMapper
public interface courseMapper {
@Select("select c.id,c.name from stu_cr sc,course c where sc.cid=c.id and sc.sid=#{id}")
public abstract List selectById(Integer id);
}



