数据表与简单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
数据表与简单java类映射转换的更多相关文章
- Java基础_0311: 数据表与简单Java类映射
数据表与简单Java类映射 现在假设有如下的关系表,现在要求实现如下的数据关联操作: 一个部门有多个雇员: 一个雇员有一个或零个领导 代码实现 class Dept { private int dep ...
- 菜鸡的Java笔记 数据表与简单java类映射
利用实际的数据表实现表与类的操作转换 简单java类是整个项目开发中的灵魂所在,它有自己严格的开发标准,而最为重要的是它需要于数据表是完全对应的 不过考虑到现在没有接触到过 ...
- 数据表与简单java类——多对多映射
给定一张Meber和Product表,得到如下信息: 1.获取一个用户访问的所有商品信息 2.获取一个商品被哪些用户浏览过的信息 package Mapping_transformation; cla ...
- 数据表与简单java类——一对多映射
例如:给定一个分类表和子分类表 得到如下信息: 1.一个分类的完整信息: 2.根据分类获取其对应的子分类 package Mapping_transformation; class item { pr ...
- hibernate中.hbm.xml和注解方式自动生成数据表的简单实例(由新手小白编写,仅适用新手小白)
绝逼新手小白,so 请大神指点! 如果真的错的太多,错的太离谱,错的误导了其他小伙伴,还望大神请勿喷,大神请担待,大神请高抬贵嘴......谢谢. 好了,正题 刚接触ssh,今天在搞使用.hbm.xm ...
- mysql数据库和数据表的简单操作
一.数据库的增删改查 1.新建数据库 CREATE DATABASE 数据库名 charset utf8; 数据库名规则:可以由字母.数字.下划线.@.#.$ 区分大小写, 不能使用关键字如 crea ...
- 数据表-java类的映射
1.一个数据表对应一个java类 2.数据表的字段对应java类的属性 3.一对多的数据表关系 一方用一个java对象表示 多方用一个java对象数组表示 4.多对多的数据表关系:采用中间表,将多对多 ...
- KETTLE——(例)简单的字段转换
一个简单的小例子:结合数据抽取.简单的字段转换.数据输出. 资源库连接.数据输入.数据输出.参见之前的文章. 基本的转换结构是这样的,我们从表中输入,选择我们需要的字段,已经对应的名称,然后将数据 ...
- 以对象的方式来访问xml数据表(二)
为什么要以对象的方式来访问xml数据表? 还记得,自己是在一次完成师兄布置的任务时接触到了xml,那时候需要用xml来作为数据文件,保存一个简单的图书管理系统的数据.于是就知道了,可以用xml文件来保 ...
随机推荐
- 你不知道的Canvas(二)
你不知道的Canvas(二) 一.色彩Colors 到目前为止,我们只看到过绘制内容的方法.如果我们想要给图形上色,有两个重要的属性可以做到:fillStyle 和 strokeStyle. fill ...
- python3 自己写的一个小算法(比对中文文本相似度)
函数使用说明: 函数的三个参数分别是“匹配语句”,“匹配语料”,“相关度”: 匹配语句,和匹配预料中的语句匹配的语句,必须为字符串: 匹配语料,被匹配语句来匹配的语句列表,必须为列表: 相关度,函数只 ...
- 在虚拟机上的关于Apache(阿帕奇)(4)基于域名访问网站
这篇随笔是基于域名访问网站,和前后两篇文章基于ip和基于端口一起练习效果更好 首先配置网卡Ip地址与hosts文件 输入命令: vi /etc/hosts/ (每行只能写一条,格式为IP地址+空格 ...
- 运用wxs制作微信小程序左滑功能和跳转,性能更优越
锲子 微信小程序自定义左滑功能加上跳转,换成以往,左滑功能的逻辑一般是在js中实现,但在拖动方面,性能并不是那么的流畅.如今,官方新扩展了一套脚本语言wxs,在IOS设备上运行,性能会比JS快2~20 ...
- continue和break在while中用法
continue用法:结束本次循环,不执行continue下面的语句,返回执行下一次循环.注意:当执行完while的循环后,执行else 后的语句 break:结束循环,else下面语句也不执行
- 前端与算法 leetcode 1. 两数之和
目录 # 前端与算法 leetcode 1. 两数之和 题目描述 概要 提示 解析 解法一:暴力法 解法二:HashMap法 算法 传入[1, 2], [11, 1, 2, 3, 2]的运行结果 执行 ...
- Python基本数据结构之集合
一道python面试的一个小问题,说怎么使用一行代码将一个列表里的重复元素,其实这里只要将列表转换成集合就可以了. 定义 集合跟我们学的列表有点像,也是可以存一堆数据,不过它有几个独特的特点,令其在整 ...
- pandas处理excel的常用方法技巧(上)
1. 导库 import pandas as pd 2. 读取excel文件 这里要注意的就是第二个参数header如果不设置,pandas会默认把excel的第一行当作columns,header= ...
- JavaScript-原型对象与原型链
原型对象 1.每个对象一定会有一个原型对象 2.原型对象实际是构造实例对象的构造器中的一个属性,只不过这个属性是个对象 3.这个原型对象中的属性与方法,都会被对象实例所共享(类似python中的类方法 ...
- ToolStrip控件左右拖拽移动效果实现
1.主窗体下部添加一个Panel乘放ToolStrip控件以实现ToolStrip在窗体下部定位.2.当ToolStrip控件中子控件超出屏幕时,拖动控件可以实现滑动效果.拖动到控件边缘距窗体边缘1/ ...