java 表映射关系实现_菜鸡的Java笔记 数据表与简单java类映射

本文介绍了如何在Java中实现数据表与简单Java类的映射关系,包括雇员和部门表的结构映射,以及如何根据表结构设置数据和获取完整信息。通过创建Emp和Dept类,实现了数据的保存和关系设置,如雇员的领导和部门信息,以及部门的雇员列表。示例展示了如何实例化对象并设置彼此关系,以及如何输出雇员和部门的详细信息。
摘要由CSDN通过智能技术生成

利用实际的数据表实现表与类的操作转换

简单java类是整个项目开发中的灵魂所在,它有自己严格的开发标准,而最为重要的是它需要于数据表是完全对应的

不过考虑到现在没有接触到过多的程序设计的功能。所以对于此处的访问就有一些限制,要求可以完成如下的两类操作:

第一步。可以根据数据表的定义的结构关系进行数据以及引用的设置

第二步。根据数据表的结构可以取出所需要的数据

简单java类经过一系列的分析和使用之后应该可以确定其主要作用:保存数据。那么既然说到了数据,自然离不开数据库

在实际的项目开大过程之中,数据库是进行数据持久化保存的重要技术手段(现代的商业项目开发之中,99%的情况下都一定要提供有数据库或类似的存储设备)

那么在实际开发之中简单java类的设计往往不是凭空写出来的都需要与数据表对应

观察如下的对应关系:

实体表表名称 = 类名称

表中的列名称(字段名称) = 类属性

表的外键关系 = 引用关系

表中的一行数据 = 实例化对象

表中的多行数据 = 对象数组

本次选用一个最熟悉的数据表的结构:dept,emp实现这样的转换操作现在开发要求如下:

1.本次开发使用以下 的数据表与表中的字段:

雇员表(emp):empno,ename,job,sal,comm,mgr,deptno

部门表(dept):deptno,dnme,loc

2.数据的操作要求:

根据表结构完成的设置雇员,经理,部门的关系

可以完成如下的内容输出:

可以输出一个雇员的完整信息,包括雇员的领导,以及所在的部门信息

可以输出一个部门的完整信息,以及这个部门的所有雇员信息,以及雇员的领导信息

第一步:写出基本字段的映射转换

雇员表(emp):empno,ename,job,sal,comm

部门表(dept):deptno,dname,loc

classEmp{private intempno:privateString ename;privateString job:private doublesal:private doublecomm:publicEmp(){}public Emp(int empno,String ename,String job,double sal,doublecomm){this.empno =empno:this.ename =ename:this.job =job:this.sal =sal:this.comm =comm:

}//sgetter,getter 省略

publicString getlnfo(){return "雇员编号:"+this.empno+",姓名:"+this.ename+",职位:"+this.job+",工资:"+this.sal+",佣金:"+this.comm:

}

}classDept{private intdeptno:privateString dname:privateString loc:publicDept(){}public Dept(intdeptno,String dname,String loc){this.deptno =deptno:this.dname =dname:this.loc =loc:

}//sgetter,getter 省略

publicString getlnfo(){return "部门:"+this.deptno+",名称:"+this.dname+",位置:"+this.loc:

}

}public classdataSheet{public static voidmain(String args[]){

}

}

第二步:设计关系字段

本程序存在有两个关系:

自身关联:mgr字段,mgr也是一个雇员:

外键关联:deptno字段

classEmp{private intempno:privateString ename;privateString job:private doublesal:private doublecomm:private Emp mgr://雇员领导,一个雇员有一个领导

private Dept dept://一个雇员属于一个部门

publicEmp(){}public Emp(int empno,String ename,String job,double sal,doublecomm){this.empno =empno:this.ename =ename:this.job =job:this.sal =sal:this.comm =comm:

}public voidsetMgr(Emp mgr){this.mgr =mgr:

}public voidsetDept(Dept dept){this.dept =dept:

}publicEmp getMgr(){return this.mgr:

}publicDept getDept(){return this.dept:

}//sgetter,getter 省略

publicString getlnfo(){return "雇员编号:"+this.empno+", 姓名:"+this.ename+",职位:"+this.job+",工资:"+this.sal+",佣金:"+this.comm:

}

}classDept{private intdeptno:privateString dname:privateString loc:privateEmp[] emps:publicDept(){}public Dept(intdeptno,String dname,String loc){this.deptno =deptno:this.dname =dname:this.loc =loc:

}public voidsetEmps(Emp[] emps){this,emps =emps:

}publicEmp getEmps(){return this.emps:

}//sgetter,getter 省略

publicString getlnfo(){return "部门:"+this.deptno+",名称:"+this.dname+",位置:"+this.loc:

}

}public classdataSheet{public static voidmain(String args[]){

}

}

第三步:执行数据操作

设置数据的关系

classEmp{private intempno:privateString ename;privateString job:private doublesal:private doublecomm:private Emp mgr://雇员领导,一个雇员有一个领导

private Dept dept://一个雇员属于一个部门

publicEmp(){}public Emp(int empno,String ename,String job,double sal,doublecomm){this.empno =empno:this.ename =ename:this.job =job:this.sal =sal:this.comm =comm:

}public voidsetMgr(Emp mgr){this.mgr =mgr:

}public voidsetDept(Dept dept){this.dept =dept:

}publicEmp getMgr(){return this.mgr:

}publicDept getDept(){return this.dept:

}//sgetter,getter 省略

publicString getlnfo(){return "雇员编号:"+this.empno+", 姓名:"+this.ename+",职位:"+this.job+",工资:"+this.sal+",佣金:"+this.comm:

}

}classDept{private intdeptno:privateString dname:privateString loc:privateEmp[] emps:publicDept(){}public Dept(intdeptno,String dname,String loc){this.deptno =deptno:this.dname =dname:this.loc =loc:

}public voidsetEmps(Emp[] emps){this,emps =emps:

}publicEmp getEmps(){return this.emps:

}//sgetter,getter 省略

publicString getlnfo(){return "部门:"+this.deptno+",名称:"+this.dname+",位置:"+this.loc:

}

}public classdataSheet{public static voidmain(String args[]){//第一步:要根据已有的表结构设置数据//1.准备好所有的独立的类对象

Dept dept = new Dept(10,"aACCOUNTING","New York",):

Emp empa= new Emp(7369,"SMITH","CLERK",800.0,0.0):

Emp empb= new Emp(7902,"FROD","MANAGER",2450.0,0.0):

Emp empc= new Emp(7839,"KING","PRESIDENT",5000.0,0.0)://2.设置彼此的关系//设置雇员和领导的关系

empa.setMgr(empb):

empb.setMgr(empc)://设置部门关系

empa.setDept(dept):

empb.setDept(dept):

empc.setDept(dept)://一个部门包含多个雇员

dept.setEmps(newEmp[]{empa,empb,empc}):

}

}

第四步:取出雇员的完整数据和一个部门的完整信息:

根据已有的关系将数据设置完整(如果在实际开发之中要通过数据库读取)

根据已有的关系依赖

classEmp{private intempno:privateString ename;privateString job:private doublesal:private doublecomm:private Emp mgr://雇员领导,一个雇员有一个领导

private Dept dept://一个雇员属于一个部门

publicEmp(){}public Emp(int empno,String ename,String job,double sal,doublecomm){this.empno =empno:this.ename =ename:this.job =job:this.sal =sal:this.comm =comm:

}public voidsetMgr(Emp mgr){this.mgr =mgr:

}public voidsetDept(Dept dept){this.dept =dept:

}publicEmp getMgr(){return this.mgr:

}publicDept getDept(){return this.dept:

}//sgetter,getter 省略

publicString getlnfo(){return "雇员编号:"+this.empno+", 姓名:"+this.ename+",职位:"+this.job+",工资:"+this.sal+",佣金:"+this.comm:

}

}classDept{private intdeptno:privateString dname:privateString loc:privateEmp[] emps:publicDept(){}public Dept(intdeptno,String dname,String loc){this.deptno =deptno:this.dname =dname:this.loc =loc:

}public voidsetEmps(Emp[] emps){this,emps =emps:

}publicEmp getEmps(){return this.emps:

}//sgetter,getter 省略

publicString getlnfo(){return "部门:"+this.deptno+",名称:"+this.dname+",位置:"+this.loc:

}

}public classdataSheet{public static voidmain(String args[]){//第一步:要根据已有的表结构设置数据//1.准备好所有的独立的类对象

Dept dept = new Dept(10,"ACCOUNTING","New York",):

Emp empa= new Emp(7369,"SMITH","CLERK",800.0,0.0):

Emp empb= new Emp(7902,"FROD","MANAGER",2450.0,0.0):

Emp empc= new Emp(7839,"KING","PRESIDENT",5000.0,0.0)://2.设置彼此的关系//设置雇员和领导的关系

empa.setMgr(empb):

empb.setMgr(empc)://设置部门关系

empa.setDept(dept):

empb.setDept(dept):

empc.setDept(dept)://一个部门包含多个雇员

dept.setEmps(newEmp[]{empa,empb,empc})://第二步:根据数据表结构利用引用关系取得数据

System.out.println(empa.getlnfo())://输出雇员基本信息

System.out.println("\t|-【领导信息】"+empa.getMgr().getlnfo())://输出雇员领导信息

System.out.println("\t|-【部门信息】"+empa.getDept().getlnfo()): //输出部门信息

System.out.println("\n*******************************************\n"):

System.out.println(dept.getlnfo)://部门信息

for(int x = 0:x

System.out.println("\t|-【雇员信息】"+dept.getEmps()[x].getlnfo()):if(dept.getEmps()[x].getMgr()!=null){ //有领导

System.out.println("\t|-【雇员领导】"+dept.getEmps()[x].getMgr().getlnfo()):

}

}

}

}/*结果:

雇员编号:7369,姓名:SMITH,职位:CLERK,工资:800.0,佣金:0.0

|-【领导信息】雇员编号:7902,姓名:FROD,职位:MANAGER,工资:2400.0,佣金:0.0

|-【部门信息】部门编号:10,名称:ACCOUNTING,位置:New York

*******************************************

部门编号:10,名称:ACCOUNTING,位置:New York

.............*/

这种代码要像写简单java类那样熟练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值