第 8 节 数据表与简单Java类映射


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

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

  • dept:deptno、dname、loc;

  • emp:empno、ename、job、sal、deptno、mgr。

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

  • 一个部门有多个雇员;

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

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

class Dept {
    private int deptno;
    private String dname;
    private String loc;
    public Dept(int deptno, String dname, String loc) {
        this.deptno = deptno;
        this.dname = dname;
        this.loc = loc;
    }
    public String getInfo() {
        return "deptno=" + deptno + ", dname=" + dname + ", loc=" + loc;
    }
}
class Emp {
    private int demo;
    private String ename;
    private String job;
    private double sal;
    private double comm;
    public Emp(int demo, String ename, String job, double sal, double comm) {
        this.demo = demo;
        this.ename = ename;
        this.job = job;
        this.sal = sal;
        this.comm = comm;
    }
    public String getInfo() {
        return "demo=" + demo + ", ename=" + ename + ", job=" + job + ", sal=" + sal + ", comm=" 
+ comm;
    }
}

**第二步:**解决外键关系

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

  • Emp类:

一个部门有多个雇员

  • Dept类

一个雇员有一个领导

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

**第三步:**设置并取得数据

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

  • 设置数据

  • 取出数据

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

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

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

整个代码之中都是依靠代码链进行数据的取出的。

题目一:一对多

1、要求可以通过一个城市找到它对应的省份信息;

2、可以通过一个省份找到所有城市的信息;

**第一步:**先写出基本字段

**第二步:**设置关联字段(引用)

**第三步:**进行代码测试

按照两步完成,第一步是设置数据,第二步是根据结构取出数据。

题目二:一对多

1、可以通过一个类型找到它所对应的全部子类型;

2、可以通过一个类型找到他所对应的全部商品,以及每个商品对应的子类型;

3、可以通过一个子类型找到所有对应的全部商品。

**第一步:**设计基本字段

**第二步:**设置关系

**第三步:**设置关系以及数据的取出

题目三:多对多

1、可以根据一个管理员找到它所对应的角色,以及每个角色包含的所有权限组的信息,以及每个权限组所包含的所有权限的内容;

2、可以根据一个权限组找到所有具备此权限组的角色以及每个角色所拥有的管理员信息;

在本次的设计之中给出的“角色_权限组”表实际上属于一张关系表,它所保存的只是两个外键的关联关系,这样的关系表不需要为其生成映射类。

生成的只能是实体表的转换操作,而多对多的中间转换表只需要通过类属性的关系配置即可。

**第一步:**生成基本的字段映射

**第二步:**设置引用关系

实际上多对多和一对多从类的定义上来讲区别不是很大。

**第三步:**设置并取得数据

最后更新于

这有帮助吗?