java引用其他类的数据头文件_Java 实现数据表与简单Java类映射转换
我们在程序开发过程中往往会使用简单Java类进行数据表结构的描述,本文主要介绍如何简单Java类与数据表之间的转换。
首先,先简单介绍一下数据表与简单Java类的相关概念对比:
- 表的定义 → 实体表设计
- 表的字段 → 类的成员属性
- 表的外键关联 → 对象引用关联
- 表的记录 → 类的实例化对象
- 表的多行记录 → 对象数组
在数据库表设计时,我们想要描述就部门与员工归属部门的关联关系,通常会设计两张表,部门表和员工信息表,如下Department表、Employees表:
通过上述两张表可以提取出如下逻辑关系:
- 每个员工归属一个领导
- 每个员工归属于一个部门
- 每个部门包含的员工
那么如何描述表数据与关系呢?为了描述上述两张表,我们需要根据表结构定义实体类结构,通过成员属性的引用关系描述表连接(逻辑关系)。
我们通过定义Department类来描述Department表,其中我们使用emp属性描述一个部门包含多个员工的逻辑关系,因为一个部门包含多个员工, 因此使用对象数组来描述,代码如下:
class Department { /*部门ID*/ private String deptNumber ; /* 部门名称*/ private String deptName; /*一个部门包含的员工*/ private Employees emp [] ; public Department(String number, String name) { this.deptNumber = number ; this.deptName = name ; } public void setEmp(Employees [] emp) { this.emp = emp ; } public Employees [] getEmp() { return this.emp ; } public String deptInfo() { return "部门ID:" + this.deptNumber +" -> " + "部门名称:" + this.deptName ; } }
我们通过定义Employees类来描述Employees表,其中我们使用deptNumber属性描述每个员工归属一个部门的逻辑关系,使用leader属性描述每个员工归属一个领导的逻辑关系,代码如下:
class Employees{ private String empNumber; private String empName ; /*每个员工归属一个部门*/ private Department deptNumber ; private String empLevel ; /*每个员工归属一个领导*/ private Employees leader ; public Employees(String empNumber,String empName,String empLevel) { this.empNumber = empNumber ; this.empName = empName ; this.empLevel = empLevel ; } public void setDeptNumber(Department deptNumber) { this.deptNumber = deptNumber; } public void setLeader(Employees leader) { this.leader = leader ; } public Employees getLeader() { return this.leader ; } public Department getDept() { return this.deptNumber ; } public String empInfo() { return "员工编号:"+ this.empNumber+" -> " + "姓名:" + this.empName+" -> " + "级别:" + this.empLevel ; } }
如下,我们通过实例化Department、Employees对象,设置属性数据,并根据引用关系可以获取数据内容。
public class ArrayDemo { public static void main(String arg []) { Department dept1 = new Department("1", "测试部") ; Department dept2 = new Department("2", "总经办") ; Employees emp1 = new Employees("9527", "群群", "架构师") ; Employees emp2 = new Employees("9528", "叽叽", "架构师") ; Employees emp3 = new Employees("9529", "琳琳", "总经理") ; emp1.setDeptNumber(dept1); emp2.setDeptNumber(dept1); emp3.setDeptNumber(dept2); emp1.setLeader(emp3); emp2.setLeader(emp3); dept1.setEmp(new Employees [] {emp1,emp2}); dept2.setEmp(new Employees [] {emp3}); /* * 查看测试部下所有员工 */ System.out.println(dept1.deptInfo()); for (Employees employees : dept1.getEmp()) { System.out.println("所含员工信息: "+ employees.empInfo() + " 员工上级领导信息: "+ employees.getLeader().empInfo()); } } }
获取数据如下:
部门ID:1 -> 部门名称:测试部 所含员工信息: 员工编号:9527 -> 姓名:群群 -> 级别:架构师 员工上级领导信息: 员工编号:9529 -> 姓名:琳琳 -> 级别:总经理 所含员工信息: 员工编号:9528 -> 姓名:叽叽 -> 级别:架构师 员工上级领导信息: 员工编号:9529 -> 姓名:琳琳 -> 级别:总经理
java引用其他类的数据头文件_Java 实现数据表与简单Java类映射转换相关推荐
- 【C++ 语言】面向对象 ( 类定义 | 限制头文件引用次数 | 构造方法 | 析构方法 )
文章目录 类的定义 ( 头文件引用次数控制 ) 类的实现 ( 构造函数 | 析构函数 ) CMake 编译配置 类测试 ( 构造析构调用测试 ) 类的定义 ( 头文件引用次数控制 ) 类定义 , 类一 ...
- java 数据对_数据表与简单java类(一对多)
emp表:empno,ename,job,sal,comm,mgr,deptno dept表:deptno,dname,loc 要求可以通过程序描述出如下对应关系 一个部门有多个部员,并且可以输出一个 ...
- 习题 8.4 在本章第8.3.3节中分别给出了包含类定义的头文件student.h,包含成员函数定义的源文件student.cpp以及包含主函数的源文件main.cpp。请完善该程序,在类中增加。。。
C++程序设计(第三版) 谭浩强 习题8.4 个人设计 习题 8.4 在本章第8.3.3节中分别给出了包含类定义的头文件student.h,包含成员函数定义的源文件student.cpp以及包含主函数 ...
- string类 string.h头文件 cstring头文件区别以及读取一行字符串总结
以前一直分不清string类 string.h头文件 cstring头文件的去别,今天ce了一发才稍微弄懂了. 首先C语言中只有string.h头文件,string.h包含了一些字符数组和字符串的函 ...
- 习题 8.5 将本章的例8.4改写为一个多文件的程序:1.将类定义放在头文件arraymax.h中;2.将成员函数定义放在源文件arraymax.cpp中;3.主函数放在源文件file1.cpp中。
C++程序设计(第三版) 谭浩强 习题8.5 个人设计 习题 8.5 将本章的例8.4改写为一个多文件的程序: 1.将类定义放在头文件arraymax.h中: 2.将成员函数定义放在源文件arraym ...
- 数据表与简单Java类映射转换(一对多、多对多、角色与权限) - Java基础知识 6
目录 数据表与简单Java类映射转换 一对多映射 多对多映射 角色与权限 学习笔记 数据 ...
- Java 第9 章 : 数据表与简单Java类映射转换
课时38:综合实战:数据表与简单Java类映射转换 简单Java类是现在面向对象设计的主要分析基础,但是对于实际的开发之中简单Java类的定义来源是有依据的,往往都是根据数据标的结构来实现简单Java ...
- 数据表与简单Java类映射转换
综合实战:数据表与简单Java类映射数据转换 简单Java类是现在面向对象设计的主要分析基础,但是对于实际开发之中简单Java类的定义来源是有依据的,往往都是根据数据表的结构来实现简单Java类. 在 ...
- #Java笔记 #程序实现:数据表与简单Java
刚开始学JAVA,从笔记做起! program 2 数据表与简单Java映射 目的 这实际上是我自己写的第一个Java程序,实现了比较简单的一个想法,还是特别开心的. <第一行代码 JAVA&g ...
最新文章
- Secure保存串口数据到本地
- xcode 编译时有相同的类,导致冲突,编译错误
- PowerTip of the Day-How Much RAM Do You Have?
- python float 精度_numpy.float128的内部精度是多少?
- linux运维笔试题目,linux运维相关的笔试题目_笔试题目
- 2022年Spark基础学习笔记目录
- Wi-Fi 爆重大安全漏洞,Android、iOS、Windows 等所有无线设备都不安全了
- ubuntu-多网卡聚合-bond技术教程
- 如何优化Java GC
- NGN学习笔记3——软交换中的协议1--SIP、SIP-I\SIP-T\BICC
- 小白程序员该看什么书?书单推荐
- gcc下载地址(Linux/windows安装)
- WAP PUSH解析(2)——WSP以及WBXML编码
- cad设计师证书怎么考
- 安卓pdf阅读器_手把手教你选购电子书阅读器!(Kindle/掌阅电子纸/文石电子书/小米电纸书……)...
- 金蝶EAS,序时簿界面去除数据隔离,根据枚举项实现背景色标记,数据排序
- Deconstructing laws of accessibility and facility distribution in cities
- iOS 多语言本地化 完美解决方案【自动+手动】
- Jenkins 登录时离线 offline
- 第十三届蓝桥杯模拟赛第二期JAVA组个人题解