简单的Java类的定义来源于数据表的结构,
例如:雇员信息表、部门信息表描述的就是雇员或部门的信息,
在实际的开发之中,数据表和简单java类之间的映射关系如下:
1、 数据实体表设计 = 类的定义;
2、表中的字段 = 类的成员属性 ;
3、表的一行记录 = 类的一个实例化对象 ;
4、表的多行记录 = 对象数组 ;
5、表的外键关联 = 引用关联 ;
假设一个部门和雇员的表:
一个部门有多个雇员;
一个雇员属于一个部门;
一个雇员有一个领导;
下面将以上的数据表转为简单Java类的形式,
一、现要根据部门信息获取以下数据:
1、一个部门的完整信息;
2、一个部门之中所有雇员的完整信息;
3、一个雇员对应的领导的信息;
二、根据雇员信息获得以下内容:
1.一个雇员所在的部门信息;
2.一个雇员对应的领导信息;
第一步:抛开所有的关联字段不看,写出类的基本组成,而后通过引用配置关联字段的关系
package Mapping_transformation; class Demp { private long deptno ; private String dname ; private String loc ; public Demp(long deptno , String dname ,String loc) { this.deptno = deptno ; this.dname = dname ; this.loc = loc ; } //setter、getter、无参构造略 public String getInfo() { return "【部门信息】部门编号:"+this.deptno+"、部门名称:"+this.dname +"、部门位置:"+this.loc ; } } class Emp { private long empno ; private String ename ; private String job ; private double sal ; private double comm ; public Emp(long empno ,String ename ,String job , double sal ,double comm) { this.empno = empno ; this.ename = ename ; this.job = job ; this.sal = sal ; this.comm = comm ; } //setter、getter、无参构造略 public String getInfo() { return "【雇员信息】雇员编号:"+this.empno + "、雇员姓名:"+this.ename + "、雇员工作:"+ this.job + "、雇员薪水:"+this.sal + "、雇员佣金"+this.comm ; } }
第二步:配置所有的关联字段
package Mapping_transformation; class Dept { private long deptno ; private String dname ; private String loc ; private Emp emps[] ; //多个雇员信息 public Dept(long deptno , String dname ,String loc) { this.deptno = deptno ; this.dname = dname ; this.loc = loc ; } public void setEmps(Emp[] emps) { this.emps = emps; } public Emp[] getEmps() { return this.emps ; } //setter、getter、无参构造略 public String getInfo() { return "【部门信息】部门编号:"+this.deptno+"、部门名称:"+this.dname +"、部门位置:"+this.loc ; } } class Emp { private long empno ; private String ename ; private String job ; private double sal ; private double comm ; private Dept dept ; //所属部门 private Emp mgr ; //所属领导 public Emp(long empno ,String ename ,String job , double sal ,double comm) { this.empno = empno ; this.ename = ename ; this.job = job ; this.sal = sal ; this.comm = comm ; } //setter、getter、无参构造略 public String getInfo() { return "【雇员信息】雇员编号:"+this.empno + "、雇员姓名:"+this.ename + "、雇员工作:"+ this.job + "、雇员薪水:"+this.sal + "、雇员佣金"+this.comm ; } public void setDept(Dept dept) { this.dept = dept; } public void setMgr(Emp mgr) { this.mgr = mgr; } public Dept getDept() { return this.dept ; } public Emp getMgr() { return this.mgr ; } }
第三步:根据关系进行类的定义,为对象进行关联的设置
public class Demo { public static void main(String[] args) { Dept dept = new Dept(10,"财务部","长沙"); Emp empA = new Emp(001,"A","java工程师",800.00,0.0); Emp empB = new Emp(002,"B","经理",1000.00,0.0); Emp empC = new Emp(003,"C","boss",1200.00,0.0); empA.setDept(dept); empB.setDept(dept); //设置雇员与部门的关联 empC.setDept(dept); empA.setMgr(empB); //设置雇员与领导的关联 empB.setMgr(empC); dept.setEmps(new Emp[]{empA,empB,empC}); //部门与雇员 } }
最后:获取数据所需数据
System.out.println(dept.getInfo()+"\n"); //部门信息 for(int i = 0 ; i < dept.getEmps().length ; i++) { System.out.println(dept.getEmps()[i].getInfo()); //雇员信息 if(dept.getEmps()[i].getMgr()!=null) System.out.println(dept.getEmps()[i].getMgr().getInfo()); //雇员的领导信息 System.out.println(); } System.out.println("------------------------------------------"); System.out.println(empA.getDept().getInfo()); //雇员获取部门信息 System.out.println(empA.getMgr().getInfo()); //雇员获取领导信息
【部门信息】部门编号:10、部门名称:财务部、部门位置:长沙
【雇员信息】雇员编号:1、雇员姓名:A、雇员工作:java工程师、雇员薪水:800.0、雇员佣金0.0
【雇员信息】雇员编号:2、雇员姓名:B、雇员工作:经理、雇员薪水:1000.0、雇员佣金0.0
【雇员信息】雇员编号:2、雇员姓名:B、雇员工作:经理、雇员薪水:1000.0、雇员佣金0.0
【雇员信息】雇员编号:3、雇员姓名:C、雇员工作:boss、雇员薪水:1200.0、雇员佣金0.0
【雇员信息】雇员编号:3、雇员姓名:C、雇员工作:boss、雇员薪水:1200.0、雇员佣金0.0
------------------------------------------
【部门信息】部门编号:10、部门名称:财务部、部门位置:长沙
【雇员信息】雇员编号:2、雇员姓名:B、雇员工作:经理、雇员薪水:1000.0、雇员佣金0.0
原文地址:https://www.cnblogs.com/fairy-land/p/11964781.html