数据库表:

发现tunnel_id和duan字段存在相同的情况,这是为了处理一种情况 同一类有多个分类 且分类又有分支。比如隧道是一类别事物 那么隧道有多个有命名存在的实体 每个实体又有各自的属性类别。这样便可以开始业务的内容。

依据表建类:
注意注解的使用 该类是能复用的。


@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("表名")
@ApiModel(value="对象", description="信息")
public class BizTunnelConfig extends Model<BizTunnelConfig> {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "主键id")@TableId(value = "id", type = IdType.AUTO)private Integer id;@ApiModelProperty(value = "所属隧道id")@TableField("tunnel_id")private Integer tunnelId;@ApiModelProperty(value = "区域名称")@TableField("name")private String name;@ApiModelProperty(value = "enter/exit/pdx/pdd/xjx/xjd")@TableField("duan")private String duan;@ApiModelProperty(value = "left/right")@TableField("direction")private String direction;/*** 隧道固有属性*/@ApiModelProperty(value = "桩号前缀")@TableField("mark_prefix")private String markPrefix;@ApiModelProperty(value = "隧道长度")@TableField("tunnel_length")private Double tunnelLength;@ApiModelProperty(value = "当前掌子面总进尺")@TableField("zzm_jinchi")private Double zzmJinchi;@ApiModelProperty(value = "最新掌子面桩号")@TableField("zzm_mark")private Double zzmMark;@ApiModelProperty(value = "")@TableField(exist = false)private String zzmMarkStr;@ApiModelProperty(value = "掌子面进尺/洞长的比例,百分数0-100")@TableField("zzm_percent")private Double zzmPercent;@ApiModelProperty(value = "当前进尺")@TableField("erc_jinchi")private Double ercJinchi;@ApiModelProperty(value = "")@TableField("erc_mark")private Double ercMark;@ApiModelProperty(value = "")@TableField(exist = false)private String ercMarkStr;@ApiModelProperty(value = "二衬进尺/洞长的比例,百分数0-100")@TableField("erc_percent")private Double ercPercent;}

对应实体属性类别 类:

package com.hyd.daring.model.index;import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;/*** 首页施工进度model** @author*/
@Data
@Accessors(chain = true)
public class ScheduleModelDemo {@ApiModelProperty(value = "隧道id")private Integer tunnelId;@ApiModelProperty(value = "隧道名称")private String tunnelName;@ApiModelProperty(value = "隧道总长")private Double length;@ApiModelProperty(value = "类别1...")private Double ZzmJinchi ;@ApiModelProperty(value = "类别1....")private Double ErcJinchi ;@ApiModelProperty(value = "类别1...完成率")private Double ZzmRatio ;@ApiModelProperty(value = "类别1...完成率")private Double ErcRatio ;@ApiModelProperty(value = "类别2...进尺")private Double OtherZzmJinchi ;@ApiModelProperty(value = "类别2...进尺")private Double OtherErcJinchi ;@ApiModelProperty(value = "类别2...完成率")private Double OtherZzmRatio ;@ApiModelProperty(value = "类别2...完成率")private Double OtherErcRatio ;
}

枚举类:
这里的枚举类是依据 数据库表格 字段duan的 pdx pdd xjx…建立的,意味着枚举类的建立是多个的。以下是举例:

package com.hyd.daring.enums;/*** 平导大小里程枚举* @author yyp*/
public enum DXlichengDemo {PDX("PDX","平导小里程"),PDD("PDD", "平导大里程");private final String key;private final String value;public String getKey() {return key;}public String getValue() {return value;}DXlichengDemo(String key, String value) {this.key = key;this.value = value;}public static String getValueByKey(String key) {DXlichengDemo[] enums = DXlichengDemo.values();for (int i = 0; i < enums.length; i++) {if (enums[i].getKey().equals(key)) {return enums[i].getValue();}}return "";}
}

实现类:

 public Object scheduleInfo(Integer tunnelId) {BizTunnel tunnel = tunnelMapper.selectById(tunnelId);List<BizTunnelConfig> tunnelConfigs = this.list(new QueryWrapper<BizTunnelConfig>().eq("tunnel_id", tunnelId));ScheduleModelDemo scheduleModel = new ScheduleModelDemo().setTunnelId(tunnel.getId()).setTunnelName(tunnel.getName());if(tunnel.getName().equals("隧道平导")){//按照项目id分组for (BizTunnelConfig tunnelConfig : tunnelConfigs) {//隧道总长scheduleModel.setLength(tunnelConfig.getTunnelLength()/1000);if (tunnelConfig.getDuan().equals(DXlichengDemo.PDX.getKey())) {//平导小里程scheduleModel.setZzmJinchi(tunnelConfig.getZzmJinchi()).setZzmRatio(tunnelConfig.getZzmPercent()).setErcJinchi(tunnelConfig.getErcJinchi()).setErcRatio(tunnelConfig.getErcPercent());} else {//平导大里程scheduleModel.setOtherZzmJinchi(tunnelConfig.getZzmJinchi()).setOtherZzmRatio(tunnelConfig.getZzmPercent()).setOtherErcJinchi(tunnelConfig.getErcJinchi()).setOtherErcRatio(tunnelConfig.getErcPercent());}}return scheduleModel;}else if(tunnel.getName().equals("隧道斜井")){for (BizTunnelConfig tunnelConfig : tunnelConfigs) {//隧道总长scheduleModel.setLength(tunnelConfig.getTunnelLength()/1000);if (tunnelConfig.getDuan().equals(XJDXlichengDemo.XJX.getKey())) {//斜井小里程scheduleModel.setZzmJinchi(tunnelConfig.getZzmJinchi()).setZzmRatio(tunnelConfig.getZzmPercent()).setErcJinchi(tunnelConfig.getErcJinchi()).setErcRatio(tunnelConfig.getErcPercent());} else {//斜井大里程scheduleModel.setOtherZzmJinchi(tunnelConfig.getZzmJinchi()).setOtherZzmRatio(tunnelConfig.getZzmPercent()).setOtherErcJinchi(tunnelConfig.getErcJinchi()).setOtherErcRatio(tunnelConfig.getErcPercent());}}return scheduleModel;}else {//按照项目id分组for (BizTunnelConfig tunnelConfig : tunnelConfigs) {//隧道总长scheduleModel.setLength(tunnelConfig.getTunnelLength() / 1000);if (tunnelConfig.getDuan().equals(Duan.ENTER.getKey())) {//进口端scheduleModel.setZzmJinchi(tunnelConfig.getZzmJinchi()).setZzmRatio(tunnelConfig.getZzmPercent()).setErcJinchi(tunnelConfig.getErcJinchi()).setErcRatio(tunnelConfig.getErcPercent());} else {//出口端scheduleModel.setOtherZzmJinchi(tunnelConfig.getZzmJinchi()).setOtherZzmRatio(tunnelConfig.getZzmPercent()).setOtherErcJinchi(tunnelConfig.getErcJinchi()).setOtherErcRatio(tunnelConfig.getErcPercent());}return scheduleModel;}}

传参数 封装成类 再引用作为判断条件 对其进行赋值。

internship:数据库表和建立的实体类及对应的枚举类之间的联系示例相关推荐

  1. 数据库实验2 数据库及数据库表的建立

    实验2  数据库及数据库表的建立 一.实验目的 本实验的目的是使学生熟悉SQL Server 2008的企业管理器的用法,初步了解SQL Server查询分析器的使用方法,熟悉SQL SERVER的常 ...

  2. 枚举类——概述、常用方法、自定义枚举类、Enum创建枚举类

    一.枚举类的概述 1.枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类 3.如果枚举类中只一个对象,则可以作为单例模式的实现方式. 二.枚举类 ...

  3. 根据数据库表动态生成java实体类

    前言,本次记录重点在读取数据库表结构,及解析转换成java实体类需要字段. 主要包含,表 列名.类型.注释的读取解析 至于代码生成,可以基于已有的代码生成模板 整合进去即可 pom: <!-- ...

  4. 如何在sqlserver数据库表中建立复合主键

    主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的. 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立 ...

  5. Django:数据库表的建立与增删查改(ForeignKey和ManytoMany)

    数据库表的创建: 1.Django工程项目建立,基础环境调试. 2.创建表 from django.db import models class Publisher(models.Model):    ...

  6. Java基础学习——Java网络编程(三)自定义枚举类、枚举类的常用方法、枚举类实现接口、枚举类的实际应用

    一.什么是枚举 枚举法:一枚一枚的列举出来,列举的元素是有限的.确定的. 例如:星期(一.二.三.四.五.六.日).性别(男.女).季节(春.夏.秋.冬) 在Java中的关键字为enum 二.枚举类的 ...

  7. java内部枚举类_内部类和枚举类

    内部类: 内部类的定义 : 在一个类的内部又定义了一个类,里面的这个类就是内部类. 内部类可以定义在外部类的成员位置(与成员变量的位置相同)或局部位置(意思是,把类写在外部类的方法里面). 什么时候使 ...

  8. flowable实战(九)flowable数据库表中流程实例、活动实例、任务实例三者之间关系分析

    场景模拟(请假流程): 员工申请请假 部门领导审批 人事审批 员工销假 本文用次例介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti中各个对象是如何关联的. 在线演示实例:http:/ ...

  9. MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段

    mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...

最新文章

  1. GitHub/GitLab/Gitee中项目互拷贝后仍保留历史提交记录的方法
  2. jmeter发送json数据,报405、400错误解决方案
  3. JS数据结构与算法_链表
  4. TensorFlow配置日志等级
  5. 使用EXE4J将JAR包转换为EXE文件
  6. 不装客户端连接mysql_C#不安装oracle客户端,如何连接到oracle数据库
  7. 《城市建筑美学》读书笔记
  8. eclipse tomcat maven热部署
  9. openwrt监控linux,openwrt linux portal 实现 支持 https 支持基于时长和流量控制
  10. 1081 Rational Sum (20 分) 分数计算+最大公约数
  11. 数据库基础(5)1NF,2NF,3NF,BCNF 四大范式的定义和判别
  12. macOS linux 并发测试工具 wrk
  13. 辐射能量、辐照度、辐射亮度
  14. C#实现给图片加边框的方法
  15. 微服务学习书籍推荐(从攻城狮到架构师进阶之路)
  16. 没有这个路径C:\Program Files\Microsoft Office\root\Office16怎么办
  17. 随身WIFI刷真Linux(Debian)系统搭配拓展坞做超低功耗服务器
  18. 部署k8s(16):集群调度策略的四种方案
  19. Ubuntu下安装截图软件Shutter
  20. 12、Flutter - 项目实战 - 仿微信(六)聊天页面

热门文章

  1. 《电子商务》漫谈网络营销
  2. (休闲小游戏)Adidas的投篮游戏
  3. “借壳”上市成功,戴尔首日收涨2% 1
  4. 竞品分析报告的几个错误
  5. [附源码]Java计算机毕业设计SSM房地产销售系统
  6. ReactJS 傻瓜教程
  7. 王者无限火力v1.4全能
  8. 神奇的bug之DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP自动更新失败
  9. 【linux 绑核】CPU 绑核
  10. vector中元素的删除