2022.0502学习Java笔记之代码模型:数据表与Java简单类映射

题目要求:要求使用emp表(empno、ebane、job、sal、comm、mgr、deptno)和dep(deptno、dname、loc)进行操作,要求可以实现以下功能:

  • 功能一:可以输出部门的完整信息,同时输出部门所有雇员以及雇员直接领导的信息
  • 功能二:可以根据一个雇员找到雇员的领导信息,和他所在的部门信息

在本程序中有两个关联的对应关系

  • 关系一:雇员和部门之间依靠的deptno字段联系
  • 关系二:雇员和领导之间的联系,依靠mgr字段

代码如下

class Emp {
	private int empno;
	private String ename;
	private String job;
	private double sal;
	private double comm;
	private Dept dept; //一个雇员属于一个部门
	private Emp mgr;
	public Emp(){  };
	public Emp(int empno, String ename, String job, double sal, double comm){
		this.empno = empno;
		this.ename = ename;
		this.job = job;
		this.sal = sal;
		this.comm = comm;
	}
	public void setMgr(Emp mgr){
		this.mgr = mgr;
	}
	public Emp getMgr(){
		return this.mgr;
	}
	public void setDept(Dept dept){
		this.dept = dept;
	}
	public Dept getDept(){
		return this.dept;
	}
	public String getInfo(){
		return "雇员编号:" + this.empno + ",姓名:" + this.ename + ",职位:" + this.job + ",工资:" + this.sal + ",佣金:" + this.comm ;
	}
}
class Dept{
	private int deptno;
	private String dname;
	private String loc;
	private Emp emps[];  //多个雇员
	public void setEmps(Emp emps[]){
		this.emps = emps;
	}
	public Emp[] getEmps(){
		return this.emps;
	}
	public Dept(){}
	public Dept(int deptno, String dname, String loc){
		this.deptno = deptno;
		this.dname = dname;
		this.loc = loc;
	}
	public String getInfo(){
		return "部门编号:" + this.deptno+ ",名称:" + this.dname + ",位置:" + this.loc ;
	}
}
public class TextDemo8{
	public static void main(String srgs[]){
		//第一层次:设置关系
		//1.分别设置个个对象实体,彼此之间没有联系
		Emp ea  = new Emp(7369 , "SMITH" , "CLERK" , 800.0 , 0.0);
		Emp eb  = new Emp(8633 , "FORD" , "MANAGER" , 2500.0 , 0.0);
		Emp ec  = new Emp(7528 , "KING" , "PRESIDENT" , 5000.0 , 0.0);
		Dept dept = new Dept(10 , "ACCOUNTING" , "New York");
		//2.设置雇员和领导关系
		ea.setMgr(eb);
		eb.setMgr(ec);//ec没有领导
		//3.设置雇员和部门关系
		ea.setDept(dept); //雇员和部门
		eb.setDept(dept); //雇员和部门
		ec.setDept(dept); //雇员和部门
		Emp[] temp = new Emp[]{ea,eb,ec};
		dept.setEmps(temp);
		//第二层次:根据关系取数据
		//1.取出部门信息
		System.out.println(dept.getInfo());
		//2.取出部门之中所有雇员的信息
		Emp[] allEmps = dept.getEmps();//先接收  
		for(int x = 0 ;x<allEmps.length ; x++){
			Emp e = allEmps[x]; //去除一个雇员
			System.out.println("\t" + e.getInfo());
			if(e.getMgr() != null){ //有领导
				System.out.println("\t\t|-" + e.getMgr().getInfo());
			}
		}
		//3.根据雇员获取信息
		System.out.println(ea.getInfo());
		if(ea.getMgr() != null){
			System.out.println(ea.getMgr().getInfo());
		}
		if(ea.getDept() != null){
			System.out.println(ea.getDept().getInfo());
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值