简单的Java类的定义来源于数据表的结构,

例如:雇员信息表、部门信息表描述的就是雇员或部门的信息,

在实际的开发之中,数据表和简单java类之间的映射关系如下:

1、 数据实体表设计 = 类的定义;

2、表中的字段 = 类的成员属性 ;

3、表的一行记录 = 类的一个实例化对象 ;

4、表的多行记录 = 对象数组 ;

5、表的外键关联 = 引用关联 ;

假设一个部门和雇员的表:

一个部门有多个雇员;

一个雇员属于一个部门;

一个雇员有一个领导;

下面将以上的数据表转为简单Java类的形式,

一、现要根据部门信息获取以下数据:

1、一个部门的完整信息;

2、一个部门之中所有雇员的完整信息;

3、一个雇员对应的领导的信息;

二、根据雇员信息获得以下内容:

1.一个雇员所在的部门信息;

2.一个雇员对应的领导信息;

第一步:抛开所有的关联字段不看,写出类的基本组成,而后通过引用配置关联字段的关系

packageMapping_transformation;classDemp
{private longdeptno ;privateString dname ;privateString loc ;public Demp(longdeptno , String dname ,String loc)
{this.deptno =deptno ;this.dname =dname ;this.loc =loc ;
}//setter、getter、无参构造略
publicString getInfo()
{return "【部门信息】部门编号:"+this.deptno+"、部门名称:"+this.dname +"、部门位置:"+this.loc ;
}
}classEmp
{private longempno ;privateString ename ;privateString job ;private doublesal ;private doublecomm ;public Emp(long empno ,String ename ,String job , double sal ,doublecomm)
{this.empno =empno ;this.ename =ename ;this.job =job ;this.sal =sal ;this.comm =comm ;
}//setter、getter、无参构造略
publicString getInfo()
{return "【雇员信息】雇员编号:"+this.empno + "、雇员姓名:"+this.ename + "、雇员工作:"+
this.job + "、雇员薪水:"+this.sal + "、雇员佣金"+this.comm ;
}
}

第二步:配置所有的关联字段

packageMapping_transformation;classDept
{private longdeptno ;privateString dname ;privateString loc ;private Emp emps[] ; //多个雇员信息
public Dept(longdeptno , String dname ,String loc)
{this.deptno =deptno ;this.dname =dname ;this.loc =loc ;
}public voidsetEmps(Emp[] emps) {this.emps =emps;
}publicEmp[] getEmps()
{return this.emps ;
}//setter、getter、无参构造略
publicString getInfo()
{return "【部门信息】部门编号:"+this.deptno+"、部门名称:"+this.dname +"、部门位置:"+this.loc ;
}
}classEmp
{private longempno ;privateString ename ;privateString job ;private doublesal ;private doublecomm ;private Dept dept ; //所属部门
private Emp mgr ; //所属领导
public Emp(long empno ,String ename ,String job , double sal ,doublecomm)
{this.empno =empno ;this.ename =ename ;this.job =job ;this.sal =sal ;this.comm =comm ;
}//setter、getter、无参构造略
publicString getInfo()
{return "【雇员信息】雇员编号:"+this.empno + "、雇员姓名:"+this.ename + "、雇员工作:"+
this.job + "、雇员薪水:"+this.sal + "、雇员佣金"+this.comm ;
}public voidsetDept(Dept dept) {this.dept =dept;
}public voidsetMgr(Emp mgr) {this.mgr =mgr;
}publicDept getDept()
{return this.dept ;
}publicEmp getMgr()
{return this.mgr ;
}
}

第三步:根据关系进行类的定义,为对象进行关联的设置

public classDemo {public static voidmain(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