Mybatis实现一对一,一对多级联查询

本文详细介绍了在Java中使用ORM框架(如Hibernate)实现一对一和一对多关系的配置与操作。通过创建实体类、声明接口、XML配置文件以及注解方式,展示了如何在学生与班级实体之间建立和测试这些关系。示例中,班级与学生之间存在一对一和一对多双向关联,通过实体类的属性和方法展示了数据的映射关系。
摘要由CSDN通过智能技术生成

目录

什么是一对一,一对多

准备学生表和班级表

创建实体类

声明接口

 xml配置文件

测试 

 注解的方式

 测试


什么是一对一,一对多

一对一:代表一个对象对应一个对象,可以认为是 一个人对应一张身份证,一张身份证对应一个人

一对多:代表一个对象对应多个对象,可以认为一个班级对应多个学生

准备学生表和班级表

学生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配置文件,直接在接口中写注解,然后实现

注解这里我们就用上面的实体类

一对一:

 

一对多:

 

 测试

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值