• 菜鸡的Java笔记 数据表与简单java类映射



            利用实际的数据表实现表与类的操作转换
            简单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("	|-【领导信息】"+empa.getMgr().getlnfo()):// 输出雇员领导信息
            System.out.println("	|-【部门信息】"+empa.getDept().getlnfo()): // 输出部门信息
            System.out.println("
    *******************************************
    "):
            System.out.println(dept.getlnfo):  // 部门信息
            for(int x = 0:x<dept.getEmps().length:x++){  // 取得部门的雇员
                System.out.println("	|-【雇员信息】"+dept.getEmps()[x].getlnfo()):
                if(dept.getEmps()[x].getMgr()!=null){  // 有领导    
                System.out.println("	|-【雇员领导】"+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类那样熟练

  • 相关阅读:
    extjs 为组件动态添加插件
    springboot使用spring-cloud-starter-alibaba-sentinel导致响应变成xml格式
    js 将数据保存到本地
    iframe跨域安全
    nginx url自动301加斜杠
    EXTJS防止表单中回车触发提交
    servlet
    Struts1和Struts2的区别
    AWT和Swing的简记
    sleep()和wait()
  • 原文地址:https://www.cnblogs.com/mysterious-killer/p/10059813.html
Copyright © 2020-2023  润新知