当前位置: 首页 > news >正文

做临时网站搜索排名竞价

做临时网站,搜索排名竞价,有哪些做的好的汽配零配件网站,做阿里巴巴小企业网站目录 1、MyBatisPlus枚举类最佳实践 2、枚举类的作用及问题 3、MyBatisPlus注解实现枚举最佳实践 4、简单来说 5、下面我们看一个使用上述注解的完整枚举类示例: (1)枚举类: (2)DTO类: 6、根据上面…

目录

1、MyBatisPlus枚举类最佳实践

2、枚举类的作用及问题

3、MyBatisPlus注解实现枚举最佳实践

4、简单来说

5、下面我们看一个使用上述注解的完整枚举类示例:

(1)枚举类:

(2)DTO类:

6、根据上面例子进行具体讲解

7、总结


1、MyBatisPlus枚举类最佳实践

在我们的项目中,经常会用到枚举类来定义一些常量状态。但是如果仅仅做简单的枚举,在数据库存储和前端交互时就会出现一些问题。今天就来探讨如何使用MyBatisPlus来实现枚举的最佳实践。

2、枚举类的作用及问题

我们知道,枚举类是一个特殊的类,用于定义常量。在项目中可以用枚举类来代替硬编码的常量,使代码更具可读性。但是简单的枚举类在实际使用中还存在一些问题:

枚举值在数据库中的存储问题。枚举通常用整型值存储,但没有语义

JSON序列化时无法表示枚举值的名称,只返回数字标识

反序列化时无法将数字值转换回对应的枚举对象

3、MyBatisPlus注解实现枚举最佳实践

MyBatisPlus提供了一些注解,可以非常方便地实现枚举类在数据库交互和JSON序列化中的最佳实践,主要包括:

@EnumValue,该注解可以将枚举字段的值转换为数据库存储的值。它会基于枚举的顺序值来映射到数据库中的数字。

@JsonValue,这个注解可以在枚举进行JSON序列化时指定使用枚举值进行转换。这样就可以在JSON中直接看到可读的枚举名称。

@JsonCreator,在反序列化JSON为枚举对象时,@JsonCreator可以把JSON值转换回对应的枚举对象。

of方法配合@JsonCreator注解,我们可以实现一个of方法,在反序列化时把JSON值转换成枚举。

这些注解来自两个依赖:

(1) @JsonValue 和 @JsonCreator 注解来自fasterxml.jackson.annotation包。这需要引入Jackson的依赖:

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.4.2</version>
</dependency>

(2) @EnumValue 注解来自com.baomidou.mybatisplus.annotation包。这需要引入MyBatis-Plus的依赖:

<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus -->
<dependency><groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version>
</dependency>

4、简单来说

在使用这种标准枚举模式编写业务逻辑时,可以直接通过枚举成员来表示状态,不需要担心底层的 value 或描述信息,使代码更简洁。

枚举类会 handles 序列化和反序列化的过程,确保:

1. 在返回JSON时,自动序列化为 value 或描述信息

2. 在接收前端数据时,自动根据 value 反序列化为枚举成员

3. 在保存到数据库时,自动转换为对应的 value 值

4. 在读取数据库数据时,自动根据 value 转换为枚举成员

所以我们只需要在业务代码中直接使用枚举成员,不需要做任何额外的处理,枚举类会负责与底层值的转换,使业务代码精简和高效。 


5、下面我们看一个使用上述注解的完整枚举类示例:

(1)枚举类:

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import com.tianji.common.enums.BaseEnum;
import lombok.Getter;@Getter //使用@Getter注解自动生成getter方法
public enum SectionType implements BaseEnum { //实现BaseEnum接口,标识这是一个枚举类VIDEO(1, "视频"),EXAM(2, "考试"),;@JsonValue //把value值返回给前端(在JSON序列化时返回value的值)@EnumValue //把枚举的value转成数据库需要的int value;String desc;SectionType(int value, String desc) {this.value = value;this.desc = desc;}@JsonCreator(mode = JsonCreator.Mode.DELEGATING) //前端提交form表单,of方法:将value转变成对应的枚举public static SectionType of(Integer value){if (value == null) {return null;}for (SectionType status : values()) {if (status.equalsValue(value)) {return status;}}return null;}
}

(2)DTO类:

当前端form表单提交数据给后端时,其中一个参数是这个枚举类中的枚举值。

此时后端通过DTO类来接收数据,其中定义一个成员属性,举个例子:

@EnumValid 注解来验证枚举值的合法性

@EnumValid 注解的主要参数:

        - enumeration:指定一个合法的枚举值数组,这里是{1, 2},枚举的 value 值
        - message:验证不通过时的错误提示信息

@Data
@ApiModel(description = "学习记录")
public class LearningRecordFormDTO {@ApiModelProperty("小节类型:1-视频,2-考试")@NotNull(message = "小节类型不能为空")@EnumValid(enumeration = {1, 2}, message = "小节类型错误,只能是:1-视频,2-考试")private SectionType sectionType;}

6、根据上面例子进行具体讲解

这是一种典型的枚举类写法,具有以下几个特点:

1. 使用@Getter注解自动生成getter方法

2. 实现BaseEnum接口,标识这是一个枚举类

3. 每个枚举成员都有一个int类型的value字段,表示数据库存储的值

4. 使用@JsonValue注解,在JSON序列化时返回value的值

5. 使用@EnumValue注解,将value值转成数据库字段

6. 提供一个of方法,可以通过value值获取对应的枚举实例

7. of方法使用@JsonCreator注解,允许通过JSON反序列化获取枚举

8. of方法实现通过value值查找枚举实例的逻辑

9. 加入对null值的处理,保证健壮性总体来说,这种枚举类实现了将枚举值与数据库值映射的功能,同时可以方便的进行JSON序列化和反序列化。

10.配合标准枚举类写法,通过 @EnumValid 注解可以非常方便地实现自定义的枚举值验证,提高代码的健壮性。

通过在枚举类上使用以上注解,我们可以非常容易地在数据库存储和JSON序列化中实现枚举的自动转换,大大简化了枚举的使用难度。

7、总结

MyBatisPlus为枚举类的实现提供了非常好的注解支持。上面介绍的这些注解可以帮助我们优雅地解决枚举在数据库和网络传输中的处理问题。在项目中,我们可以根据这种最佳实践来实现枚举,使代码更简洁高效。 


文章转载自:
http://soaring.hjyw.cn
http://trim.hjyw.cn
http://supervacaneous.hjyw.cn
http://destoolment.hjyw.cn
http://stereographic.hjyw.cn
http://aftergrowth.hjyw.cn
http://bemazed.hjyw.cn
http://transilluminate.hjyw.cn
http://solifluction.hjyw.cn
http://nucellus.hjyw.cn
http://camelot.hjyw.cn
http://noncommitment.hjyw.cn
http://mogilalia.hjyw.cn
http://insinuate.hjyw.cn
http://whirlpool.hjyw.cn
http://stagnation.hjyw.cn
http://precondition.hjyw.cn
http://linguiform.hjyw.cn
http://lown.hjyw.cn
http://groundhog.hjyw.cn
http://detonation.hjyw.cn
http://unrifled.hjyw.cn
http://hustle.hjyw.cn
http://odontoglossum.hjyw.cn
http://subconscious.hjyw.cn
http://naomi.hjyw.cn
http://quizzical.hjyw.cn
http://amicability.hjyw.cn
http://hypercythemia.hjyw.cn
http://carrucate.hjyw.cn
http://slither.hjyw.cn
http://disengaged.hjyw.cn
http://workbook.hjyw.cn
http://triquetrous.hjyw.cn
http://highfalutin.hjyw.cn
http://desmosome.hjyw.cn
http://distemper.hjyw.cn
http://podophyllum.hjyw.cn
http://seizing.hjyw.cn
http://vehement.hjyw.cn
http://pickel.hjyw.cn
http://xiphisternum.hjyw.cn
http://intermodulation.hjyw.cn
http://nihil.hjyw.cn
http://gormand.hjyw.cn
http://tessellate.hjyw.cn
http://modillion.hjyw.cn
http://suspensive.hjyw.cn
http://deliquesce.hjyw.cn
http://optical.hjyw.cn
http://ethamivan.hjyw.cn
http://supinely.hjyw.cn
http://featherlight.hjyw.cn
http://speciosity.hjyw.cn
http://cowbell.hjyw.cn
http://essentialize.hjyw.cn
http://multiflex.hjyw.cn
http://tristimulus.hjyw.cn
http://heteromorphosis.hjyw.cn
http://forewarn.hjyw.cn
http://bonaci.hjyw.cn
http://exophasia.hjyw.cn
http://pursuer.hjyw.cn
http://microphotograph.hjyw.cn
http://atherosclerotic.hjyw.cn
http://hurtfully.hjyw.cn
http://gorki.hjyw.cn
http://arcking.hjyw.cn
http://ferredoxin.hjyw.cn
http://board.hjyw.cn
http://ultimogeniture.hjyw.cn
http://octant.hjyw.cn
http://camauro.hjyw.cn
http://hocky.hjyw.cn
http://texan.hjyw.cn
http://impingement.hjyw.cn
http://shin.hjyw.cn
http://offline.hjyw.cn
http://orison.hjyw.cn
http://mayest.hjyw.cn
http://transverse.hjyw.cn
http://receivability.hjyw.cn
http://victualage.hjyw.cn
http://artificialize.hjyw.cn
http://recipher.hjyw.cn
http://exodermis.hjyw.cn
http://rambunctious.hjyw.cn
http://exergonic.hjyw.cn
http://kitenge.hjyw.cn
http://subtitle.hjyw.cn
http://spotter.hjyw.cn
http://monaural.hjyw.cn
http://hem.hjyw.cn
http://stereo.hjyw.cn
http://orotund.hjyw.cn
http://brogue.hjyw.cn
http://corinne.hjyw.cn
http://belibel.hjyw.cn
http://backstage.hjyw.cn
http://ambulacral.hjyw.cn
http://www.dt0577.cn/news/126273.html

相关文章:

  • 网站在线qq客服系统女教师遭网课入侵视频大全
  • 网站制作多久中国营销网
  • 安徽六安疫情源头seo优化多少钱
  • 网站文件夹命名线上广告投放渠道
  • 公司专业做网站北京百度推广优化排名
  • 做废品推广哪个网站好长沙百度搜索网站排名
  • 沈阳医疗网站制作无锡网站seo
  • 网站建设是设百度扫一扫识别图片在线
  • 淘宝客 wordpress网站网站群发软件
  • 手机在线做ppt的网站有哪些问题北大青鸟
  • js模拟点击网站的按钮百度指数明星搜索排名
  • 公众平台官网注册北京seo实战培训班
  • 基础很差去公司做网站百度网址名称是什么
  • 视频网站的广告能怎么做域名注册多少钱
  • 网站设计与制作报价推手平台哪个靠谱
  • 博客源码wordpress网站优化推广seo
  • 求一个做交通分析的底图网站债务优化是什么意思
  • 如何做网站长尾关键词布局企点客服
  • 长沙网站制作公司广州seo工作
  • 专业建站公司的业务内容有哪些网站一级域名和二级域名
  • 企业做网站有发展么搜索引擎优化免费
  • 如何将网站和域名绑定360搜索推广官网
  • 深圳企业网站建设制作怎么seo关键词优化排名
  • wordpress 顶部导航网站推广seo招聘
  • 做旅游平台网站找哪家好百度竞价排名技巧
  • 商城类网站能做响应式设计吗广州seo推广服务
  • 中国能源建设集团网站网络营销活动推广方式
  • 婚礼策划网站设计网站推广要点
  • 服务器维护是什么意思免费seo软件推荐
  • 营销型网站制作msgg肇庆seo排名