数据表与简单java类映射(一对多)
在学习oracle的时候使用过了两张数据表:emp、dept表
emp表:empno(员工编号)、ename(员工名)、job、sal(薪金)、comm(佣金)、
mgr(上级编号)、deptno(部门编号),hiredate(受雇日期);
dept表:deptno(部门编号)、dname(部门名称)、loc(地点).
| - 一个部门有多少个雇员,并且可以输出一个部门的完整信息:(包括雇员信息);
| - 可以根据一个雇员找到雇员对应的领导信息和雇员所在部门的信息
【实际开发中的简单java类设计原则】通过简单java类的开发以及数据表的使用,可以观察出两者存在关系
| - 简单java的名称=实体表名称;
| - 简单java类的属性=实体表的字段
| - 简单java类的一个对象=表的一行记录
| - 外键关系=引用配置
1。先按照给定的关系将所有的基础字段转换为类
class Emp{private String ename;private String empno;private String job;private double sal;private double comm;public Emp() {}public Emp(String ename,String empno,String job,double sal,double comm) {pno=ame=ename;this.job=job;this.sal=sal;thism=comm;}public String getInfo() {return "【Emp】ename :"+ename+"empno:"+empno+"job:"+job+"sal:"+sal+"comm:"+comm;}
}
class Dept{private int deptno;private String dname;private String loc;public Dept() {}public Dept(String dname,String loc,int deptno) {this.deptno=deptno;this.dname=dname;this.loc=loc;}public String getIno() {return "【Dept】deptno :"+deptno+"dname:"+dname+"loc:"+loc;}}public class 一对多 {}
2.随后要进行关系设计,该数据表对应有如下的几个关系
一。 一个雇员属于一个部门,需要追加部门引用;
二。一个雇员有一个领导,领导一定是自身关联,自身引用
三。一个部门有多个雇员,
package 数据表与简单java类转换;
class Emp{private String ename;private String empno;private String job;private double sal;private double comm;private Emp mgr;//描述雇员领导private Dept dept;//描述雇员所在部门public Emp() {}public Emp(String ename,String empno,String job,double sal,double comm) {pno=ame=ename;this.job=job;this.sal=sal;thism=comm;}
public void setMgr(Emp mgr) {=mgr;}public Emp getMgr() {;}public void setDept(Dept dept) {this.dept=dept;}public Dept getDept() {return this.dept;}public String getInfo() {return "【Emp】ename :"+ename+"empno:"+empno+"job:"+job+"sal:"+sal+"comm:"+comm;}
}
class Dept{ private int deptno;private String dname;private String loc; private Emp[] emps;//所有雇员public Dept() {}public Dept(String dname,String loc,int deptno) {this.deptno=deptno;this.dname=dname;this.loc=loc;}public void setEmps(Emp[]emps) {ps=emps;}public Emp[] getEmps() { ps;}public String getIno() {return "【Dept】deptno :"+deptno+"dname:"+dname+"loc:"+loc;}}public class 一对多 {}
那么此时基本的类定义完成了。
3.实现开发的需求。
class Emp{private String ename;private double empno;private String job;private int sal;private int comm;private Emp mgr;//描述雇员领导private Dept dept;//描述雇员所在部门public Emp() {}public Emp(String ename,double empno,String job,int sal,int comm) {pno=ame=ename;this.job=job;this.sal=sal;thism=comm;}public void setMgr(Emp mgr) {=mgr;}public Emp getMgr() {;}public void setDept(Dept dept) {this.dept=dept;}public Dept getDept() {return this.dept;}public String getInfo() {return "【Emp】ename :"+ename+" empno: "+empno+"job:"+job+" sal:"+sal+" comm:"+comm;}
}
class Dept{ private int deptno;private String dname;private String loc; private Emp[] emps;//所有雇员public Dept() {}public Dept(String dname,String loc,int deptno) {this.deptno=deptno;this.dname=dname;this.loc=loc;}public void setEmps(Emp[]emps) {ps=emps;}public Emp[] getEmps() { ps;}public String getInfo() {return "【Dept】deptno :"+deptno+" dname: "+dname+" loc: "+loc;}}public class 一对多 {public static void main (String args[]) {//第一步:设置类对象的关系//1.分别创建各自类的实例化对象 Dept dept =new Dept("ACCOUNTING","NEW YORK",10);//会计Emp ea= new Emp("SMITH",007,"CLERK",900,0);//职员Emp eb= new Emp("ALLEN",005,"MANAGER",2560,0);//经理Emp ec= new Emp("KING",001,"PRESIDENT",5000,0);//总裁//2.设置雇员领导的关系ea.setMgr(eb);eb.setMgr(ec);//3.设置雇员和部门的关系ea.setDept(dept);eb.setDept(dept);ec.setDept(dept);//4.设置部门和雇员的关系dept.setEmps(new Emp[] {ea,eb,ec});//5. 一个部门有多少个雇员,并且可以输出一个部门的完整信息:(包括雇员信息)//第二步:进行数据的取得System.out.Info());//输出部门信息for(int x=0;x&Emps().length;x++) {System.out.println("n"Emps()[x].getInfo());Emps()[x].getMgr()!=null) {//有领导System.out.println("t|-"Emps()[x].getMgr().getInfo());}}System.out.println("====================================================");//可以根据一个雇员找到雇员对应的领导信息和雇员所在部门的信息System.out.Mgr().getInfo());Mgr()!=null) {//有领导System.out.println("t|-"Mgr().getInfo());}Dept()!=null) {System.out.println("t|-"Dept().getInfo());}}
}
这种关系的匹配以及数据的取出操作,是必须掌握的,也是日后开发的基本模式。
当我们把车也加入进去是如下的样子
class Emp{private String ename;private String empno;private String job ;private double sal;private Emp mgr;private Dept dept;private Car car;public Emp(){}public Emp(String ename,String empno,String job,double sal) {ame=pno=empno;this.job=job;this.sal=sal;}public void setCar(Car car) {this.car=car;}public Car getCar() {return this.car;}public void setMgr(Emp mgr) {=mgr;}public Emp getMgr() {
; }public void setDept(Dept dept) {this.dept=dept;}public Dept getDept() {return this.dept;}public String getInfo() {return "【Emp】 ename: "ame+" empno: "pno+" job: "+this.job+" sal: "+this.sal;}}
class Car{private String name;private double price;private Emp emp;public Car() {}public Car(String name,double price) {this.name=name;this.price=price;}public void setEmp(Emp emp){p=emp;}public Emp getEmp() {p;}public String getInfo() {return "【Car】 name :"+name+" price: "+price;}
}
class Dept{private String dname;private String deptno;private String loc;private Emp emps[];public Dept() {}public Dept(String dname,String deptno,String loc) {this.dname=dname;this.deptno=deptno;this.loc=loc;}public void setEmps(Emp []emps) {ps=emps;}public Emp[] getEmps() {ps;}public String getInfo() {return "【Dept】 dname: "+this.dname+" deptno: "+this.deptno+" loc: "+this.loc;}}
public class TestDemo{public static void main(String agrs[]) {Dept dept=new Dept("腾讯","123","深圳");Emp ea=new Emp("ruce","13145","CLERK",150000.0);Emp eb=new Emp("baga","1314520","MANAGER",250000.0);Emp ec=new Emp("king","007","PERSIDENT",500000.0);Car car=new Car("兰博基尼",100000000.0);Car cc=new Car("玛莎拉蒂",2000000.0);Car ccc=new Car("风之子",100000000.0);car.setEmp(ea);cc.setEmp(eb);ccc.setEmp(ec);ea.setCar(car);eb.setCar(cc);ec.setCar(ccc);ea.setMgr(eb);eb.setMgr(ec);ea.setDept(dept);eb.setDept(dept);ec.setDept(dept);dept.setEmps(new Emp[] {ea,eb,ec});System.out.Info());for(int x=0;x&Emps().length;x++) {System.out.Emps()[x].getInfo());Emps()[x].getMgr()!=null) {System.out.println("n|-"Emps()[x].getMgr().getInfo());}}System.out.println("================================================");System.out.Mgr().getInfo());System.out.println("================================================");Mgr()!=null) {System.out.println("n|-"Mgr().getInfo());}Dept()!=null) {System.out.println("n|-"Dept().getInfo());}//通过车找到车的人的公司System.out.Emp().getDept().getInfo());
//通过车找到车的人的公司的老板的车System.out.println("n|--"Emp().getMgr().getCar().getInfo());System.out.Emp().getInfo());}
}
本文发布于:2024-02-01 00:31:24,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170671868432514.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |