栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习笔记----数据表与简单Java类映射

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习笔记----数据表与简单Java类映射

对于如上的关系表,现在要求实现如下的数据关联:

  • 一个部门有多个雇员
  • 一个雇员有一个或零个领导 

部门表(dept):部门编号(deptno)、部门名称(dname)、部门位置(loc);

雇员表(emp):雇员编号(empno)、姓名(ename)、职位(job)、工资(sal)、佣金(comm)、领导编号(mgr)、部门编号(deptno)

例.代码实现

class Dept{
    private int deptno;
    private String dname;
    private String loc;
    private Emp emps[];
    public Dept(int 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 emps;
    }
    public String getInfo(){
        return "部门编号:" + this.deptno + "; 名称:" + this.dname + "; 位置:" + this.loc;
    }
}
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(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; 
    }
}

本程序中可以发现Emp类和Dept类中存在如下引用关系:

  • 一个雇员属于一个部门,应该在雇员里面保存部门信息,因此在Emp类中定义一个dept属性,如果有部门则设置一个Dept类的实例化对象,否则设置为null;
  • 一个部门有多个雇员,要描述这个概念,应该使用对象数组完成,因此在Dept类中设置一个Emp类的对象数组;
  • 一个雇员有一个领导,领导信息也是雇员信息,因此在Emp类中增加领导的自身关联

例.设置并取得数据

public class TestDemo{
    public static void main(String args[]){
        //一、根据表结构描述设置数据
        //1.产生各自的独立的对象
        Dept dept = new Dept(10,"ACCOUNTING","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",50000.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 
雇员编号:7369; 姓名:SMITH; 职位:CLERK; 工资:800.0; 佣金:0.0
        |-雇员编号:7902; 姓名:FORD; 职位:MANAGER; 工资:2450.0; 佣金:0.0
        |-部门编号:10; 名称:ACCOUNTING; 位置:NEW YORK
部门编号:10; 名称:ACCOUNTING; 位置:NEW YORK
        |-雇员编号:7369; 姓名:SMITH; 职位:CLERK; 工资:800.0; 佣金:0.0
                |-雇员编号:7902; 姓名:FORD; 职位:MANAGER; 工资:2450.0; 佣金:0.0
        |-雇员编号:7902; 姓名:FORD; 职位:MANAGER; 工资:2450.0; 佣金:0.0
                |-雇员编号:7839; 姓名:KING; 职位:PRESIDENT; 工资:50000.0; 佣金:0.0
        |-雇员编号:7839; 姓名:KING; 职位:PRESIDENT; 工资:50000.0; 佣金:0.0

本程序首先根据表的结构进行数据以及数据关联的配置,然后在数据取出时会根据表的结构进行取出;例如:通过部门可以找到对应的领导和所在部门,以及通过部门可以找到部门中的所有雇员

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号