数据表与简单java类映射

简单的Java类的定义来源于数据表的结构,

例如:雇员信息表、部门信息表描述的就是雇员或部门的信息,

在实际的开发之中,数据表和简单java类之间的映射关系如下:

1、 数据实体表设计 = 类的定义;

2、表中的字段 = 类的成员属性 ;

3、表的一行记录 = 类的一个实例化对象 ;

4、表的多行记录 = 对象数组 ;

5、表的外键关联 = 引用关联 ;

假设一个部门和雇员的表:

一个部门有多个雇员;

一个雇员属于一个部门;

一个雇员有一个领导;

下面将以上的数据表转为简单Java类的形式,

一、现要根据部门信息获取以下数据:

1、一个部门的完整信息;

2、一个部门之中所有雇员的完整信息;

3、一个雇员对应的领导的信息;

二、根据雇员信息获得以下内容:

1.一个雇员所在的部门信息;

2.一个雇员对应的领导信息;

第一步:抛开所有的关联字段不看,写出类的基本组成,而后通过引用配置关联字段的关系

package Mapping_transformation;

class Demp
{
    private long deptno ;
    private  String dname ;
    private  String loc ;
    public  Demp(long deptno , String dname ,String loc)
    {
        this.deptno = deptno ;
        this.dname = dname ;
        this.loc = loc ;
    }
    //setter、getter、无参构造略
    public String getInfo()
    {
        return "【部门信息】部门编号:"+this.deptno+"、部门名称:"+this.dname +"、部门位置:"+this.loc ;
    }

}
class Emp
{
    private long empno ;
    private  String ename ;
    private  String job ;
    private double sal ;
    private  double comm ;
    public Emp(long empno ,String ename ,String job , double sal ,double comm)
    {
        this.empno = empno ;
        this.ename = ename ;
        this.job = job ;
        this.sal = sal ;
        this.comm = comm ;
    }
    //setter、getter、无参构造略
    public String getInfo()
    {
        return "【雇员信息】雇员编号:"+this.empno + "、雇员姓名:"+this.ename + "、雇员工作:"+
                this.job + "、雇员薪水:"+this.sal + "、雇员佣金"+this.comm ;
    }

}

第二步:配置所有的关联字段

package Mapping_transformation;

class Dept
{
    private long deptno ;
    private  String dname ;
    private  String loc ;
    private Emp emps[] ;         //多个雇员信息
    public  Dept(long 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 ;
    }
    //setter、getter、无参构造略
    public String getInfo()
    {
        return "【部门信息】部门编号:"+this.deptno+"、部门名称:"+this.dname +"、部门位置:"+this.loc ;
    }

}
class Emp
{
    private long empno ;
    private  String ename ;
    private  String job ;
    private double sal ;
    private  double comm ;
    private Dept dept ;     //所属部门
    private Emp mgr ;       //所属领导
    public Emp(long empno ,String ename ,String job , double sal ,double comm)
    {
        this.empno = empno ;
        this.ename = ename ;
        this.job = job ;
        this.sal = sal ;
        this.comm = comm ;
    }
    //setter、getter、无参构造略
    public String getInfo()
    {
        return "【雇员信息】雇员编号:"+this.empno + "、雇员姓名:"+this.ename + "、雇员工作:"+
                this.job + "、雇员薪水:"+this.sal + "、雇员佣金"+this.comm ;
    }

    public void setDept(Dept dept) {
        this.dept = dept;
    }

    public void setMgr(Emp mgr) {
        this.mgr = mgr;
    }

    public Dept getDept()
    {
        return this.dept ;
    }
    public Emp getMgr()
    {
        return this.mgr ;
    }

}

第三步:根据关系进行类的定义,为对象进行关联的设置

public class Demo {
    public static void main(String[] args) {
        Dept dept = new Dept(10,"财务部","长沙");
        Emp empA = new Emp(001,"A","java工程师",800.00,0.0);
        Emp empB = new Emp(002,"B","经理",1000.00,0.0);
        Emp empC = new Emp(003,"C","boss",1200.00,0.0);

        empA.setDept(dept);
        empB.setDept(dept);      //设置雇员与部门的关联
        empC.setDept(dept);

        empA.setMgr(empB);       //设置雇员与领导的关联
        empB.setMgr(empC);

        dept.setEmps(new Emp[]{empA,empB,empC});   //部门与雇员
    }
}

最后:获取数据所需数据

        System.out.println(dept.getInfo()+"\n"); //部门信息
        for(int i = 0 ; i < dept.getEmps().length ; i++)
        {
            System.out.println(dept.getEmps()[i].getInfo());  //雇员信息
            if(dept.getEmps()[i].getMgr()!=null)
            System.out.println(dept.getEmps()[i].getMgr().getInfo());   //雇员的领导信息
            System.out.println();
        }
        System.out.println("------------------------------------------");
        System.out.println(empA.getDept().getInfo());     //雇员获取部门信息
        System.out.println(empA.getMgr().getInfo());      //雇员获取领导信息

【部门信息】部门编号:10、部门名称:财务部、部门位置:长沙

【雇员信息】雇员编号:1、雇员姓名:A、雇员工作:java工程师、雇员薪水:800.0、雇员佣金0.0
【雇员信息】雇员编号:2、雇员姓名:B、雇员工作:经理、雇员薪水:1000.0、雇员佣金0.0

【雇员信息】雇员编号:2、雇员姓名:B、雇员工作:经理、雇员薪水:1000.0、雇员佣金0.0
【雇员信息】雇员编号:3、雇员姓名:C、雇员工作:boss、雇员薪水:1200.0、雇员佣金0.0

【雇员信息】雇员编号:3、雇员姓名:C、雇员工作:boss、雇员薪水:1200.0、雇员佣金0.0

------------------------------------------
【部门信息】部门编号:10、部门名称:财务部、部门位置:长沙
【雇员信息】雇员编号:2、雇员姓名:B、雇员工作:经理、雇员薪水:1000.0、雇员佣金0.0

原文地址:https://www.cnblogs.com/fairy-land/p/11964781.html

时间: 2024-10-13 17:10:58

数据表与简单java类映射的相关文章

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

给定一张Meber和Product表,得到如下信息: 1.获取一个用户访问的所有商品信息 2.获取一个商品被哪些用户浏览过的信息 package Mapping_transformation; class Meber { private String name ; private int age ; private Product products[] ; //一个人浏览多个商品 public Meber(String name , int age) { this.name = name ; t

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

例如:给定一个分类表和子分类表 得到如下信息: 1.一个分类的完整信息: 2.根据分类获取其对应的子分类 package Mapping_transformation; class item { private long id ; private String title ; private subitem subitems[] ; //一个分类有多个子分类 public item(long id , String title) { this.id = id ; this.title = tit

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

绝逼新手小白,so 请大神指点! 如果真的错的太多,错的太离谱,错的误导了其他小伙伴,还望大神请勿喷,大神请担待,大神请高抬贵嘴......谢谢. 好了,正题 刚接触ssh,今天在搞使用.hbm.xml文件 和 注解方式 来自动生成数据表 其中只是整了spring.hibernate,struts部分没有整.也就是说我只是测试了能够自动生成数据表(自动生成为"标准",自认为是对的......) 下面是配置和代码: 使用工具:myeclipse 2014 ,其中web project项目

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

一.数据库的增删改查 1.新建数据库 CREATE DATABASE 数据库名 charset utf8; 数据库名规则:可以由字母.数字.下划线.@.#.$ 区分大小写, 不能使用关键字如 create select, 不能单独使用数字, 最长128位 2.查看数据库 show databases; show create database 数据库名; 3.选择数据库 USE 数据库名; 4.删除数据库 DROP DATABASE 数据库名; 5.修改数据库字符编码 alter databas

数据表-java类的映射

1.一个数据表对应一个java类 2.数据表的字段对应java类的属性 3.一对多的数据表关系 一方用一个java对象表示 多方用一个java对象数组表示 4.多对多的数据表关系:采用中间表,将多对多转为多对一进行处理 eg:Student类

以对象的方式来访问xml数据表(二)

为什么要以对象的方式来访问xml数据表? 还记得,自己是在一次完成师兄布置的任务时接触到了xml,那时候需要用xml来作为数据文件,保存一个简单的图书管理系统的数据.于是就知道了,可以用xml文件来保存数据(而且比用简单的文本文件保存数据规范的多,在访问与读取数据上面都十分方便),就这样使用xml的征程开始了. 自己做的第一个WPF桌面应用程序——备忘录,就是用xml文件作为数据库.而且那个时候考虑到以后可能会经常使用到xml文件作为数据库,于是乎就写了一个专门用于访问xml文件的动态链接库,这

以面向对象的思想实现数据表的添加和查询,JDBC代码超详细

以面向对象的思想编写JDBC程序,实现使用java程序向数据表中添加学生信息,并且可以实现给定×××号查询学生信息或给定准考证号查询学生信息. 创建的数据表如下: CREATE TABLE EXAMSTUDENT(FlowID INTEGER,Type INTEGER,IDCard VARCHAR(18),ExamCard VARCHAR(15),StudentName VARCHAR(20),Location VARCHAR(20),Grade INTEGER);1.首先实现通过java程序在

Java简单博客系统(二)静态页面动态化显示数据表内容

(一)准备工作 建立java Web项目基础的四个package 将JSP相关库和MySQL数据驱动包放到相应的目录 下面列出com.java.util中的三个类的代码,在项目中经常用到,基本是参照java1234.com小锋老师的项目代码稍作写出来的. public class DbUtil { //定义获取数据库连接的方法 private String dburl="jdbc:mysql://127.0.0.1:3306/db_blog?useSSL=false&serverTime

MySQL---数据库从入门走向大神系列(十一)-Java获取数据库/结果集的元信息、将数据表写入excel表格

数据库的元信息: 首先介绍一下数据库的元信息(元数据): 元数据(Metadata)是关于数据的数据. 元数据是描述数据仓库内数据的结构和建立方法的数据. 存储的数据是什么类型,什么驱动等等,这些描述数据的数据,就是元数据! 准备: package cn.hncu.pool3; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; i