2019-01-23
2019-01-25 本文已影响2人
DreamPath
数据表与简单Java类综合运用整理
设计步骤:
- 1.写出基本属性(不包含出现关联(自身关联和外键关联)的属性)的基本字段(包括封装的类属性,默认构造方法.带参数的构造方法,setter,getter方法,以及获取字段的方法等).
- 2.设计关系字段
- 3.执行数据操作
设置数据关系
部门类
package empDept;
public class Dept {
private int detno;
private String dname;
private String loc;
//一个部门有多个雇员,雇员数组
private Emp [] emps;
//构造器
public Dept(){}
public Dept(int detno,String dname,String loc){
this.detno=detno;
this.dname=dname;
this.loc=loc;
}
//一个部门有多个雇员 关系设计
public void setEmps(Emp [] emps){
this.emps=emps;
}
public Emp [] getEmps(){
return this.emps;
}
public void setDetno(int detno){
this.detno=detno;
}
public int getDetno(){
return detno;
}
public String getDname(){
return dname;
}
public void setDname(String dname){
this.dname=dname;
}
public String getLoc(){
return loc;
}
public void setLoc(String loc){
this.loc=loc;
}
public String getInfore(){
return "部门编号"+this.detno+",名称"+this.dname+",位置"+this.loc;
}
}
雇员类
package empDept;
public class Emp {
private int empno;
private String ename;
private String job;
private double sal;
private double comm;
private Emp mgr;//雇员领导 一个雇员有一个领导
private Dept dept;//一个雇员属于一个部门
//默认构造器
public Emp(){}
//含参数构造器
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 mgr;
}
public void setDept(Dept dept){
this.dept=dept;
}
public Dept getDept(){
return dept;
}
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
public double getComm() {
return comm;
}
public void setComm(double comm) {
this.comm = comm;
}
//字段信息
public String getInfore(){
return "雇员编号:"+this.empno+",姓名:"+this.ename+",职位:"+this.job+",薪水:"+this.sal+",佣金:"+this.comm;
}
}
测试,输出雇员领导关系及其基本信息类
package empDept;
public class TestDemo {
public static void main(String [] args){
//设置数据关系
//第一步,根据已有的表结构设置数据
//准备好所有的独立的类对象
Dept dept =new Dept(10,"ACC","New YOURK");
Emp empa=new Emp(3547,"due","软件程序员",8000,0.0);
Emp empb=new Emp(5436,"gs","软件测试工程师",10000.8,0.0);
Emp empc=new Emp(8749,"kdy","服务器开发工程师",13000.9,5.5);
//设置彼此关系
empa.setMgr(empb);//设置雇员领导关系
empb.setMgr(empc);//设置雇员领导关系
empa.setDept(dept);//设置部门关系
empb.setDept(dept);//设置部门关系
empc.setDept(dept);//设置部门关系
dept.setEmps(new Emp[]{empa,empb,empc});//一个领导有多个雇员
//取出雇员的完成关系
//根据表结构利用引用关系取得关系数据
System.out.println(empa.getInfore());//打印雇员基本信息
System.out.println("\t-[领导信息]"+empa.getMgr().getInfore());//打印雇员领导信息
System.out.println("\t-[部门信息]"+empa.getDept().getInfore());//打印雇员部门信息
System.out.println("\n=======================\n");
//取出一个部门完整信息
System.out.println(dept.getInfore());//部门信息
//输出雇员信息
for(int i=0;i<dept.getEmps().length;i++){
System.out.println("\t [雇员信息]"+dept.getEmps()[i].getInfore());
if(dept.getEmps()[i].getMgr()!=null){
System.out.println("\t\t|雇员领导"+dept.getEmps()[i].getInfore());
}
}
/**雇员编号:3547,姓名:due,职位:软件程序员,薪水:8000.0,佣金:0.0
-[领导信息]雇员编号:5436,姓名:gs,职位:软件测试工程师,薪水:10000.8,佣金:0.0
-[部门信息]部门编号10,名称ACC,位置New YOURK
=======================
部门编号10,名称ACC,位置New YOURK
[雇员信息]雇员编号:3547,姓名:due,职位:软件程序员,薪水:8000.0,佣金:0.0
|雇员领导雇员编号:3547,姓名:due,职位:软件程序员,薪水:8000.0,佣金:0.0
[雇员信息]雇员编号:5436,姓名:gs,职位:软件测试工程师,薪水:10000.8,佣金:0.0
|雇员领导雇员编号:5436,姓名:gs,职位:软件测试工程师,薪水:10000.8,佣金:0.0
[雇员信息]雇员编号:8749,姓名:kdy,职位:服务器开发工程师,薪水:13000.9,佣金:5.5
*/
}
}