java基础之数据表与简单java类的映射

                     数据表与简单java类的映射

 

要求通过java程序描述出dept-emp关系,使用字段:

- dept :deptno,dname

- emp :empno,ename,job,sal,deptno,mgr;

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

- 一个部门有多个雇员;

- 一个雇员有一个或者零个领导;

编码步骤:

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

第二步:解决外键关系

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

      |-  一个部门有多个雇员(使用数组)

    |-  一个雇员有一个领导

     第三步:设置并取得数据

           |-  设置数据:

  1. 产生各自的对立对象
  2. 设置雇员和领导的关系
  3. 设置雇员和部门之间的关系

           |- 取出数据:

  1. 可以根据雇员信息查询其所对应的领导信息和部门信息。
  2. 可以根据一个部门取出所有的雇员以及每个雇员的领导信息

 

 

 

程序:

class Dept{

 private int deptno;

 private String dname;

 private Emp emp[];//一个部门有多个雇员 注意定义类型

 public Dept(int deptno,String dname){

     this.deptno = deptno;

     this.dname = dname;

 }

    public void setEmp(Emp[] emp) {

        this.emp = emp;

    }

    public Emp[] getEmp() {

        return this.emp;

    }

    public String getinfo(){

        return "部门编号:"+this.deptno+"、部门名称"+this.dname;

    }

}

class Emp{

private int empno;

private String ename;

private double sal;

private Dept dept;//一个雇员属于一个部门

private Emp mgr;//一个雇员有一个领导

public  Emp(int empno,String ename,double sal){

    this.empno = empno;

    this.ename = ename;

    this.sal = sal;

}

    public void setMgr(Emp mgr) {

        this.mgr = mgr;

    }

    public Emp getMgr() {

        return mgr;

    }

    public void setDept(Dept dept) {

        this.dept = dept;

    }

    public Dept getDept() {

        return dept;

    }

    public String getinfo(){

    return "雇员编号:"+this.empno+"、雇员名字:"+this.ename+"、薪水:"+this.sal;

    }

}

public class day03 {

    public static void main(String args[]) {

        //产生各自的对立对象

        Dept a = new Dept(01, "研发部门");

        Emp ea = new Emp(1001, "柳旭", 5000.0);

        Emp eb = new Emp(1002, "铭铭", 4000.0);

        Emp ec = new Emp(1003, "旭旭", 3000.0);

        //设置雇员和领导之间的关系

        ea.setMgr(eb);

        eb.setMgr(eb);

        //设置雇员和部门之间的关系

        ea.setDept(a);

        a.setEmp(new Emp[]{ea, eb, ec});//将数据作为数组传递给a.setEmp()方法。

        //取出数据

        //可以根据雇员信息查询其所对应的领导和部门信息

        System.out.println(ea.getMgr().getinfo());

        System.out.println(ea.getDept().getinfo());

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

        System.out.println(a.getinfo());

        for (int x = 0; x < a.getEmp().length; x++) {

            //a.getEmp()返回的是Emp[]数组

            System.out.println("      " + a.getEmp()[x].getinfo());

            if ( a.getEmp()[x].getMgr() != null) {//避免空指针异常

                System.out.println("领导:" + a.getEmp()[x].getMgr().getinfo());

            }

        }

    }

}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值