Java基础_0311: 数据表与简单Java类映射
数据表与简单Java类映射
现在假设有如下的关系表,现在要求实现如下的数据关联操作:
一个部门有多个雇员;
一个雇员有一个或零个领导
代码实现
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;
}// setter、getter、无参构造略
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;
}// setter、getter、无参构造略
public String getInfo() {
return "雇员编号:" + this.empno + ",姓名:" + this.ename + ",职位:" + this.job
+ ",工资:" + this.sal + ",佣金:" + this.comm;
}
}
程序关系
在本程序中可以发现Emp与Dept类之间存在有如下的引用关系定义:
一个雇员属于一个部门,应该在雇员里面保存部门信息,所以在Emp类中定义有一个dept属性,如果有部门则设置一个Dept类的实例化对象,否则设置为null;
一个部门有多个雇员,如果要描述多这个概念应该使用对象数组完成。所以在Dept类中增加一个Emp类的对象数组(Emp emps []);
一个雇员有一个领导,领导信息也就是雇员信息,应该在Emp类中增加领导的自身关联(Emp mgr);
此时的两个简单Java类已经可以完整的描述出数据表的结构定义,随后将根据结构设置并取得数据,要求可以完成如下的信息输出:
- 可以根据一个雇员查询他所对应的领导信息和部门信息;
- 可以根据一个部门取出所有的雇员以及每个雇员的领导信息;
范例:设置并取得数据
public class TestDemo {
public static void main(String args[]) {
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",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());// 领导信息
}
}
}
}
Java基础_0311: 数据表与简单Java类映射的更多相关文章
- 数据表与简单java类映射转换
简单的Java类的定义来源于数据表的结构, 例如:雇员信息表.部门信息表描述的就是雇员或部门的信息, 在实际的开发之中,数据表和简单java类之间的映射关系如下: 1. 数据实体表设计 = 类的定义: ...
- 菜鸡的Java笔记 数据表与简单java类映射
利用实际的数据表实现表与类的操作转换 简单java类是整个项目开发中的灵魂所在,它有自己严格的开发标准,而最为重要的是它需要于数据表是完全对应的 不过考虑到现在没有接触到过 ...
- 数据表与简单java类——多对多映射
给定一张Meber和Product表,得到如下信息: 1.获取一个用户访问的所有商品信息 2.获取一个商品被哪些用户浏览过的信息 package Mapping_transformation; cla ...
- 数据表与简单java类——一对多映射
例如:给定一个分类表和子分类表 得到如下信息: 1.一个分类的完整信息: 2.根据分类获取其对应的子分类 package Mapping_transformation; class item { pr ...
- Java基础系列1:深入理解Java数据类型
Java基础系列1:深入理解Java数据类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括四个 ...
- Java基础-类加载机制与自定义类Java类加载器(ClassLoader)
Java基础-类加载机制与自定义类Java类加载器(ClassLoader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于类加载器的概念和分类我就不再废话了,因为我在之前的笔 ...
- java基础思维导图,让java不再难懂
java基础思维导图,让java不再难懂 原文链接 https://my.oschina.net/u/3080373/blog/873056 最近看了一些文章的思维导图,发现思维导图真是个强大的工具 ...
- 【java基础】IOC介绍及其简单实现
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心. 控制反转一般分为两种类型,依赖注入 ...
- Java基础学习总结(35)——Java正则表达式详解
在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...
随机推荐
- 关于dp(背包)
有关背包,我这几天可是尽受其苦(不得不靠我聪颖的背诵代码的大脑来进行一波操作) Step 1 01背包 关于01背包的主要代码: ;j<=m;j++) { for(int i=n;i& ...
- 2019阿里校招测评题,光明小学完全图最短路径问题(python实现)
题目:光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么?光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连.光 ...
- A*搜索算法
先了解一下什么是A*算法. A*搜寻算法,俗称A星算法.A*算法是用于寻找两点之间的最短路径,同时它也是一种静态路网中求解最短路最有效的直搜索方法.这是一种在图形平面上,有多个节点的路径,求出最低通过 ...
- linux c 编程 ------ 通过设备节点调用驱动
驱动程序如下,加载驱动后,会在/dev文件夹下生成一个文件hello_device_node,是此驱动的设备节点 #include <linux/init.h> #include < ...
- secureCRT恶意终止下次无法启动
secureCRT使用中恶意中断后会在C:\Documents and Settings\wuyipeng\Application Data目录下产生一个secureCRT.dmp文件 下次正常运行s ...
- 洛谷P1119 灾后重建 Floyd + 离线
https://www.luogu.org/problemnew/show/P1119 真是有故事的一题呢 半年前在宁夏做过一道类似的题,当时因为我的愚昧痛失了金牌. 要是现在去肯定稳稳的过,真是生不 ...
- Java基础构造方法和this关键字整理
构造方法 8.1构造方法介绍 构造方法的格式: 修饰符 构造方法名(参数列表) { } l 构造方法的体现: n 构造方法没有返回值类型.也不需要写返回值.因为它是为构建对象的,对象创建完,方法就 ...
- 3D转换(位置)+过渡+透视
效果如图: html代码: <div class="door"> <div class="in"><div> </di ...
- 20165232第4次实验《Android程序设计》实验报告
20165232第4次实验<Android程序设计>实验报告 一.实验报告封面 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:何彦达 学号:20165232 指导教师: ...
- flask 钩子函数
说明: before_request函数,就是一个装饰器,他可以把需要设置为钩子函数的代码放到视图函数执行之前执行 示例: from flask import Flask,url_for,redire ...