20、数据表与简单Java类可映射(模型)

1、本次的预计讲解的知识

在之前已经给出了简单Java类一定要和数据表的结构对应上,同时外键需要依靠引用开进行关联,于是本次将针对于Java类做一个功能上的扩充。

2、具体内容

要求通过Java程序描述出dept-emp欢喜,使用字段:

·deptdeptnodnameloc

·empempnoenamejobsalcommdeptnomgr

dept-emp表的关系里面存在有如下的关联:

·一个部门有多个雇员;

·一个雇员有一个或零个领导。

第一步:实现基本字段的转换

class Dept {

private int deptno;

private String dname;

private String loc;

//settergetter、无参构造略

public Dept(int deptno,String dname,String loc) {

this.deptno = deptno;

this.dname = dname;

this.loc = loc;

}

public String getInfo() {

return "部门编号:" + deptno + ",名称" + dname + ",位置" + loc;

}

}

class Emp {

private int empno;

private String ename;

private String job;

private double sal;

private double comm;

//settergetter、无参构造略

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 String getInfo() {

return "雇员编号:" + empno + ",姓名" + ename + ",职位" + job + "工资" + sal + "佣金" + comm;

}

}

第二步:解决外键的关系

·一个雇员属于一个部门,应该在雇员里面保存部门信息。

|- Emp类;

public Dept getDept() {

return dept;

}

public void setDept(Dept dept) {

this.dept = dept;

}

|- 一个部门有多个雇员,如果描述多应该用数组完成,修改Dept

Emp emps []; //多个雇员

public Emp[] getEmps() {

return emps;

}

public void setEmps(Emp[] emps) {

this.emps = emps;

}

·一个雇员有一个领导;

public Emp mgr; //表示雇员对应的领导

public Emp getMgr() {

return mgr;

}

public void setMgr(Emp mgr) {

this.mgr = mgr;

}

所有的匹配的映射关系都已经描述出来了。

第三步:设置并取得数据

对于这种映射的方式一定要分两步完成,第一步根据结构设置数据,第二步根据结构取得数据。

·设置数据

public class Demo {

public static void main(String[] args) {

//第一步:设置数据

//1、产生各自的独立对象

Dept dept = new Dept(10,"ACOUNTING","New York");//部门信息

Emp ea = new Emp(7369,"SMITH","CLERK",800.0,0.0);//雇员信息

Emp eb = new Emp(7902,"FORD","MANAGER",2450.0,0.0);//雇员信息

Emp ec = new Emp(7839,"KING","PRESIDENT",5000.0,0.0);//雇员信息

//2、设置雇员和两领导的关系

ea.setMgr(eb);

eb.setMgr(ec);

//3、设置雇员和部门的关系

ea.setDept(dept);//雇员与部门

eb.setDept(dept);//雇员与部门

ec.setDept(dept);//雇员与部门

dept.setEmps(new Emp[]{ea,eb,ec});

//通过人找到车的信息

}

}

·取出数据,根据给定结构取出数据,要求如下:

|- 可以根据一个雇员查询他所对应的领导信息和部门信息;

System.out.println(ea.getInfo());

System.out.println("\t|-" + ea.getMgr().getInfo());

System.out.println("\t|-" + ea.getDept().getInfo());

|- 可以根据一个部门取出所有的雇员以及每个雇员的领导信息。

System.out.println(dept.getInfo());

for(int x=0; x<dept.getEmps().length; x++) {

System.out.println("\t|-" + dept.getEmps()[x].getInfo());

if(dept.getEmps()[x].getMgr() != null) {

System.out.println("\t\t|-" + dept.getEmps()[x].getMgr().getInfo());

}

}

整个代码都是通过代码链进行数据的取出的。

3、总结

可以点任意给出的数据表直接转换为类的形式,并可以设置并取出所有的数据。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值