利用实际的数据表实现表与类的操作转换
        简单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

class Emp{
private int empno:
private String ename;
private String job:
private double sal:
private double comm:
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:
}//sgetter,getter 省略
public String getlnfo(){
return "雇员编号:"+this.empno
+",姓名:"+this.ename
+",职位:"+this.job
+",工资:"+this.sal
+",佣金:"+this.comm:
}
}
class Dept{
private int deptno:
private String dname:
private String loc:
public Dept(){}
public Dept(int deptno,String dname,String loc){
this.deptno = deptno:
this.dname = dname:
this.loc = loc:
}//sgetter,getter 省略
public String getlnfo(){
return "部门:"+this.deptno
+",名称:"+this.dname
+",位置:"+this.loc:
} }
public class dataSheet{
public static void main(String args[]){ }
}

第二步:设计关系字段
            本程序存在有两个关系:
                自身关联:mgr字段,mgr也是一个雇员:
                外键关联:deptno字段

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 void setDept(Dept dept){
this.dept = dept:
}
public Emp getMgr(){
return this.mgr:
}
public Dept getDept(){
return this.dept:
}
//sgetter,getter 省略
public String getlnfo(){
return "雇员编号:"+this.empno
+", 姓名:"+this.ename
+",职位:"+this.job
+",工资:"+this.sal
+",佣金:"+this.comm:
}
}
class Dept{
private int deptno:
private String dname:
private String loc:
private Emp[] emps:
public Dept(){}
public Dept(int deptno,String dname,String loc){
this.deptno = deptno:
this.dname = dname:
this.loc = loc:
}
public void setEmps(Emp[] emps){
this,emps = emps:
}
public Emp getEmps(){
return this.emps:
}
//sgetter,getter 省略
public String getlnfo(){
return "部门:"+this.deptno
+",名称:"+this.dname
+",位置:"+this.loc:
} }
public class dataSheet{
public static void main(String args[]){ }
}

第三步:执行数据操作
            设置数据的关系

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 void setDept(Dept dept){
this.dept = dept:
}
public Emp getMgr(){
return this.mgr:
}
public Dept getDept(){
return this.dept:
}
//sgetter,getter 省略
public String getlnfo(){
return "雇员编号:"+this.empno
+", 姓名:"+this.ename
+",职位:"+this.job
+",工资:"+this.sal
+",佣金:"+this.comm:
}
}
class Dept{
private int deptno:
private String dname:
private String loc:
private Emp[] emps:
public Dept(){}
public Dept(int deptno,String dname,String loc){
this.deptno = deptno:
this.dname = dname:
this.loc = loc:
}
public void setEmps(Emp[] emps){
this,emps = emps:
}
public Emp getEmps(){
return this.emps:
}
//sgetter,getter 省略
public String getlnfo(){
return "部门:"+this.deptno
+",名称:"+this.dname
+",位置:"+this.loc:
} }
public class dataSheet{
public static void main(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(new Emp[]{empa,empb,empc}):
}
}        

第四步:取出雇员的完整数据和一个部门的完整信息:
            根据已有的关系将数据设置完整(如果在实际开发之中要通过数据库读取)
            根据已有的关系依赖

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 void setDept(Dept dept){
this.dept = dept:
}
public Emp getMgr(){
return this.mgr:
}
public Dept getDept(){
return this.dept:
}
//sgetter,getter 省略
public String getlnfo(){
return "雇员编号:"+this.empno
+", 姓名:"+this.ename
+",职位:"+this.job
+",工资:"+this.sal
+",佣金:"+this.comm:
}
}
class Dept{
private int deptno:
private String dname:
private String loc:
private Emp[] emps:
public Dept(){}
public Dept(int deptno,String dname,String loc){
this.deptno = deptno:
this.dname = dname:
this.loc = loc:
}
public void setEmps(Emp[] emps){
this,emps = emps:
}
public Emp getEmps(){
return this.emps:
}
//sgetter,getter 省略
public String getlnfo(){
return "部门:"+this.deptno
+",名称:"+this.dname
+",位置:"+this.loc:
} }
public class dataSheet{
public static void main(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(new Emp[]{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<dept.getEmps().length: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类那样熟练

菜鸡的Java笔记 数据表与简单java类映射的更多相关文章

  1. Java基础_0311: 数据表与简单Java类映射

    数据表与简单Java类映射 现在假设有如下的关系表,现在要求实现如下的数据关联操作: 一个部门有多个雇员: 一个雇员有一个或零个领导 代码实现 class Dept { private int dep ...

  2. 数据表与简单java类映射转换

    简单的Java类的定义来源于数据表的结构, 例如:雇员信息表.部门信息表描述的就是雇员或部门的信息, 在实际的开发之中,数据表和简单java类之间的映射关系如下: 1. 数据实体表设计 = 类的定义: ...

  3. 数据表与简单java类——多对多映射

    给定一张Meber和Product表,得到如下信息: 1.获取一个用户访问的所有商品信息 2.获取一个商品被哪些用户浏览过的信息 package Mapping_transformation; cla ...

  4. 数据表与简单java类——一对多映射

    例如:给定一个分类表和子分类表 得到如下信息: 1.一个分类的完整信息: 2.根据分类获取其对应的子分类 package Mapping_transformation; class item { pr ...

  5. Java中数据表的建立

    class Emp{ private int empno;//职工编号 private String ename;//姓名 private String job;//职位 private double ...

  6. MySQL学习笔记 -- 数据表的基本操作

    数据库是一个可以存放数据库对象的容器,数据库对象包括:表.视图.存储过程.函数.触发器.事件.其中,表是数据库最基本的元素,是其他数据库对象的前提条件. 表中的一列称为一个字段,一行称为一条记录. 1 ...

  7. hibernate中.hbm.xml和注解方式自动生成数据表的简单实例(由新手小白编写,仅适用新手小白)

    绝逼新手小白,so 请大神指点! 如果真的错的太多,错的太离谱,错的误导了其他小伙伴,还望大神请勿喷,大神请担待,大神请高抬贵嘴......谢谢. 好了,正题 刚接触ssh,今天在搞使用.hbm.xm ...

  8. mysql数据库和数据表的简单操作

    一.数据库的增删改查 1.新建数据库 CREATE DATABASE 数据库名 charset utf8; 数据库名规则:可以由字母.数字.下划线.@.#.$ 区分大小写, 不能使用关键字如 crea ...

  9. Java笔记10:Struts2简单Demo

    1 下载struts-2.3.24.1-all.zip并解压缩,位置任意,比如我的位置是D:\Download\Java\struts-2.3.24.1 解压缩D:\Download\Java\str ...

随机推荐

  1. Anaconda和canda简介及区别

    Anaconda简介: 1.是一个开源的Python发行版本,其包含了conda.Python等软件包,numpy,pandas(数据分析),scipy等科学计算包,而无需再单独下载配置. 可以在同一 ...

  2. Jetpack Compose学习(7)——MD样式架构组件Scaffold及导航底部菜单

    Jetpack Compose学习(7)--MD样式架构组件Scaffold及导航底部菜单 | Stars-One的杂货小窝 Compose给我们提供了一个Material Design样式的首页组件 ...

  3. NOIP模拟66

    T1 接力比赛 解题思路 其实就是一个背包 DP ,也没啥好说的也就是一个优化,每次枚举之前的前缀和. 比较妙的就是一个 random_shuffle 可以整掉部分卡人的数据(但是好像 sort 一下 ...

  4. RabbitMQ的web页面介绍(三)

    一.Virtual Hosts 每一个 RabbitMQ 服务器都能创建虚拟的消息服务器,我们称之为虚拟主机 (virtual host) ,简称为vhost.每一个 vhost 本质上是一个独立的小 ...

  5. 分析你的第一个Android程序

    目录 分析你的第一个Android程序 Android模式的项目结构 切换项目结构模式 Project模式的项目结构 .gradle和idea app build(没有发现这个文件夹) gradle ...

  6. FastAPI 学习之路(五)

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四)  我们之前的文章分享了 ...

  7. PTA数据结构 习题2.8 输出全排列 (20分)

    习题2.8 输出全排列 (20分) 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出正整数n(<10 ...

  8. Vulnhub实战-grotesque3靶机👻

    Vulnhub实战-grotesque3靶机 靶机地址:http://www.vulnhub.com/entry/grotesque-301,723/ 1.靶机描述 2.主机探测,端口扫描 我们在vm ...

  9. 【Spring】Spring重要类层次图

  10. Shiro反序列化的检测与利用

    1. 前言 Shiro 是 Apache 旗下的一个用于权限管理的开源框架,提供开箱即用的身份验证.授权.密码套件和会话管理等功能. 2. 环境搭建 环境搭建vulhub 3. 如何发现 第一种情况 ...