美文网首页
38-综合实战:数据表与简单Java类映射转换

38-综合实战:数据表与简单Java类映射转换

作者: c88bc9f9d088 | 来源:发表于2020-11-15 18:32 被阅读0次

    简单Java类是现在面向对象设计的主要分析基础,但是对于实际的开发之中简单Java类的定义来源是有依据的,往往都是根据数据表的结构来实现简单Java类。

    在数据库之中实际上是提供有若干个数据表的,那么每一张实体数据表实际上都可以描述出一些具体的事物概念,例如:雇员信息表、部门信息表,一看就知道描述的就是雇员或部门的信息。

    那么按照这个思路回到程序之中你会发现,程序类的定义形式实际上和这些实体表的差别并不大,所以在实际的项目开发之中数据表与简单Java类之间的基本映射关系如下:

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

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

  • 表的外键关联 = 引用关联;

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

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

    在以上所对应数据表的关系之中可以发现有如下的关联存在:

  • 一个部门有多个雇员;

  • 一个雇员属于一个部门;

  • 一个雇员有一个领导;

    下面将以上的数据表转为简单java类的定义形式,在整体的程序代码之中要求可以获得如下信息:

  • 根据部门信息获得以下内容:

    |- 一个部门的完整信息;

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

    |- 一个雇员对应的领导的信息;

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

    |- 一个雇员所在的部门信息;

    |- 一个雇员对应的领导信息;

    对于数据表与简单java类之间的映射最好的解决步骤:先抛开所有的关联字段不看,写出类的基本组成,而后再通过引用配置关联字段的关系。

第一步:分别定义Emp、Dept两个实体类


class Dept{

    private long deptno;

    private String dname;

    private String loc;

    public Dept(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;

    }

}

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

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 class JavaDemo{

    public static void main(String args[]){

        // 第一步:根据关系进行类的定义

        // 定义出各个的实例化对象,此时并没有任何的关联定义

        Dept dept = new Dept(10,"财务部","上海");

        Emp empA = new Emp(7369L,"SMITH","CLERK",800.00,0.0);

        Emp empB = new Emp(7566L,"FORD","MANAGER",2450.00,0.0);

        Emp empC = new Emp(7839L,"KING","PRESIDENT",5000.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());  //部门信息

        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());

            }

        }

        System.out.println("--------------------------------------------");

        System.out.println(empB.getDept().getInfo());  //根据雇员获取部门信息

        System.out.println(empB.getMgr().getInfo());   //根据雇员获取领导信息

    }   

}

    在以后的开发之中这种转换的定义形式一定是要熟练完成的。

相关文章

  • 38-综合实战:数据表与简单Java类映射转换

        简单Java类是现在面向对象设计的主要分析基础,但是对于实际的开发之中简单Java类的定义来源是有依据的,...

  • 数据表与简单Java类映射转换

    数据表与简单Java类映射转换 简单Java类是现在面向对象设计的主要分析基础,但是对于实际的开发之中简单Java...

  • 日期操作类(Date类)

    在之前一直在编写简单Java类,但是所编写的数据表与简单Java类的转换里面缺少了Date日期的转换。在Java里...

  • 实战:数据表与简单Java类映射

    要求:用Java程序描述出department-employee关系,使用如下字段:dept: deptno dn...

  • 日期操作类

    之前一直强调java类的概念,java类与数据库表的映射,数据表的日期字段一直没有映射。 今天研究一下Java.u...

  • 第五天___②

    数据表与简单Java类(一) 核心 通过简单Java类开发及数据表的使用,应该可以观察出两者存在对应关系 简单Ja...

  • 2019-01-23

    数据表与简单Java类综合运用整理 设计步骤: 1.写出基本属性(不包含出现关联(自身关联和外键关联)的属性)的基...

  • 12-综合实战:简单Java类

        在以后进行项目的开发与设计的过程之中,简单Java类都将作为一个重要的组成部分存在,慢慢接触到正规的项目设...

  • Kotlin与Java混合开发(1)✔️数据类型映射

    Java 基本数据类型 与 Kotlin 数据类型映射Java 包装类 与 Kotlin 数据类型映射Java 常...

  • 日期操作类

    Date类   从整体的Java来讲,一直在强调简单Java类的主要涉及来自于数据表的结构,那么在数据表的结构中常...

网友评论

      本文标题:38-综合实战:数据表与简单Java类映射转换

      本文链接:https://www.haomeiwen.com/subject/pianbktx.html