internship:数据库表和建立的实体类及对应的枚举类之间的联系示例
数据库表:
发现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:数据库表和建立的实体类及对应的枚举类之间的联系示例相关推荐
- 数据库实验2 数据库及数据库表的建立
实验2 数据库及数据库表的建立 一.实验目的 本实验的目的是使学生熟悉SQL Server 2008的企业管理器的用法,初步了解SQL Server查询分析器的使用方法,熟悉SQL SERVER的常 ...
- 枚举类——概述、常用方法、自定义枚举类、Enum创建枚举类
一.枚举类的概述 1.枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类 3.如果枚举类中只一个对象,则可以作为单例模式的实现方式. 二.枚举类 ...
- 根据数据库表动态生成java实体类
前言,本次记录重点在读取数据库表结构,及解析转换成java实体类需要字段. 主要包含,表 列名.类型.注释的读取解析 至于代码生成,可以基于已有的代码生成模板 整合进去即可 pom: <!-- ...
- 如何在sqlserver数据库表中建立复合主键
主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的. 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立 ...
- Django:数据库表的建立与增删查改(ForeignKey和ManytoMany)
数据库表的创建: 1.Django工程项目建立,基础环境调试. 2.创建表 from django.db import models class Publisher(models.Model): ...
- Java基础学习——Java网络编程(三)自定义枚举类、枚举类的常用方法、枚举类实现接口、枚举类的实际应用
一.什么是枚举 枚举法:一枚一枚的列举出来,列举的元素是有限的.确定的. 例如:星期(一.二.三.四.五.六.日).性别(男.女).季节(春.夏.秋.冬) 在Java中的关键字为enum 二.枚举类的 ...
- java内部枚举类_内部类和枚举类
内部类: 内部类的定义 : 在一个类的内部又定义了一个类,里面的这个类就是内部类. 内部类可以定义在外部类的成员位置(与成员变量的位置相同)或局部位置(意思是,把类写在外部类的方法里面). 什么时候使 ...
- flowable实战(九)flowable数据库表中流程实例、活动实例、任务实例三者之间关系分析
场景模拟(请假流程): 员工申请请假 部门领导审批 人事审批 员工销假 本文用次例介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti中各个对象是如何关联的. 在线演示实例:http:/ ...
- MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段
mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...
最新文章
- GitHub/GitLab/Gitee中项目互拷贝后仍保留历史提交记录的方法
- jmeter发送json数据,报405、400错误解决方案
- JS数据结构与算法_链表
- TensorFlow配置日志等级
- 使用EXE4J将JAR包转换为EXE文件
- 不装客户端连接mysql_C#不安装oracle客户端,如何连接到oracle数据库
- 《城市建筑美学》读书笔记
- eclipse tomcat maven热部署
- openwrt监控linux,openwrt linux portal 实现 支持 https 支持基于时长和流量控制
- 1081 Rational Sum (20 分) 分数计算+最大公约数
- 数据库基础(5)1NF,2NF,3NF,BCNF 四大范式的定义和判别
- macOS linux 并发测试工具 wrk
- 辐射能量、辐照度、辐射亮度
- C#实现给图片加边框的方法
- 微服务学习书籍推荐(从攻城狮到架构师进阶之路)
- 没有这个路径C:\Program Files\Microsoft Office\root\Office16怎么办
- 随身WIFI刷真Linux(Debian)系统搭配拓展坞做超低功耗服务器
- 部署k8s(16):集群调度策略的四种方案
- Ubuntu下安装截图软件Shutter
- 12、Flutter - 项目实战 - 仿微信(六)聊天页面