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

广州网站开发设计网站的推广平台有哪些

广州网站开发设计,网站的推广平台有哪些,精准营销通俗来说是什么,做家常菜的网站MyBatis-Plus之通用枚举 前言 MyBatis-Plus中提供了通用枚举,简单来说就是将数据库中的某一字段的代替的含义转换成真实的含义将数据展示给用户,用户在存储时也会将真实值转换成代替的数字存入到数据库中。举个例子:用户性别在数据库中存储…

MyBatis-Plus之通用枚举

前言

MyBatis-Plus中提供了通用枚举,简单来说就是将数据库中的某一字段的代替的含义转换成真实的含义将数据展示给用户,用户在存储时也会将真实值转换成代替的数字存入到数据库中。举个例子:用户性别在数据库中存储为1(表示男)、2(表示女)。在读取数据库的数据时就会自动将1、2值转换为男或女,返回给前端。

这样做是可以有效地节省数据库的存储空间。下面我们来看看枚举的使用方式~

MyBatis官方文档讲解的MyBatisPlus枚举使用

官方文档讲MyBatisPlus的枚举的地址:https://www.baomidou.com/pages/8390a4/#%E6%AD%A5%E9%AA%A41-%E5%A3%B0%E6%98%8E%E9%80%9A%E7%94%A8%E6%9E%9A%E4%B8%BE%E5%B1%9E%E6%80%A7

MyBatisPlus的通用枚举解决了繁琐的配置,可以做到让 mybatis 优雅的使用枚举属性! 从MyBatisPlus的 3.5.2 版本开始只需完成 步骤1: 声明通用枚举属性 即可使用。

步骤1: 声明通用枚举属性

方式一: 使用 @EnumValue 注解枚举属性 完整示例(opens new window)

public enum GradeEnum {PRIMARY(1, "小学"),  SECONDORY(2, "中学"),  HIGH(3, "高中");GradeEnum(int code, String descp) {this.code = code;this.descp = descp;}@EnumValue//标记数据库存的值是codeprivate final int code;//。。。
}

方式二: 枚举属性,实现 IEnum 接口如下:

public enum AgeEnum implements IEnum<Integer> {ONE(1, "一岁"),TWO(2, "二岁"),THREE(3, "三岁");private int value;private String desc;@Overridepublic Integer getValue() {return this.value;}
}

实体属性使用枚举类型(方式一和方式二都要做这一步的,age演示的是使用IEnum接口的枚举处理,grade使用的是原生枚举)

public class User {/*** 名字* 数据库字段: name varchar(20)*/private String name;/*** 年龄,IEnum接口的枚举处理* 数据库字段:age INT(3)*/private AgeEnum age;/*** 年级,原生枚举(带{@link com.baomidou.mybatisplus.annotation.EnumValue}):* 数据库字段:grade INT(2)*/private GradeEnum grade;
}

步骤2: 配置扫描通用枚举

  • 注意!! 从 3.5.2 开始无需配置
  • 注意!! spring mvc 配置参考,安装集成 MybatisSqlSessionFactoryBean 枚举包扫描,spring boot 例子配置如下:

示例工程:

👉 mybatisplus-spring-boot(opens new window)

方式一:仅配置指定包内的枚举类使用 MybatisEnumTypeHandler

配置文件 resources/application.yml

mybatis-plus:# 支持统配符 * 或者 ; 分割。这里写的是使用了@EnumValue的枚举的包名或者实现了IEnum接口的枚举的包名typeEnumsPackage: com.baomidou.springboot.entity.enums....

当添加这个配置后,mybatis-plus 提供的 MybatisSqlSessionFactoryBean 会自动扫描包内合法的枚举类(使用了 @EnumValue 注解,或者实现了 IEnum 接口),分别为这些类注册使用 MybatisEnumTypeHandler

换句话说,只有指定包下的枚举类会使用新的 TypeHandler。其他包下,或者包内没有做相关改造的枚举类,仍然会使用 mybatis 的 DefaultEnumTypeHandler。

方式二:直接指定 DefaultEnumTypeHandler

此方式用来 全局 修改 mybatis 使用的 EnumTypeHandler。

配置文件 resources/application.yml

mybatis-plus:# 修改 mybatis 的 DefaultEnumTypeHandlerconfiguration:default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler

自定义配置类 MybatisPlusAutoConfiguration

@Configuration
public class MybatisPlusAutoConfiguration {@Beanpublic MybatisPlusPropertiesCustomizer mybatisPlusPropertiesCustomizer() {return properties -> {GlobalConfig globalConfig = properties.getGlobalConfig();globalConfig.setBanner(false);MybatisConfiguration configuration = new MybatisConfiguration();configuration.setDefaultEnumTypeHandler(MybatisEnumTypeHandler.class);properties.setConfiguration(configuration);};}
}

如何序列化枚举值为前端返回值?

可以使用Jackson、或者Fastjson都行。使用Jackson可以使用下面的重写 toString 方法或者注解处理来达到告诉框架返回给前端的内容都行。使用Fastjson你就得重写toString方法了,可以使用下面的全局处理方式或者局部处理方式来做都行。

Jackson

一、重写 toString 方法
springboot
    @Beanpublic Jackson2ObjectMapperBuilderCustomizer customizer(){return builder -> builder.featuresToEnable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);}
ackson
    ObjectMapper objectMapper = new ObjectMapper();objectMapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);

以上两种方式任选其一,然后在枚举中复写 toString 方法,返回那个你要展示给前端的值,即可.

二、注解处理
public enum GradeEnum {PRIMARY(1, "小学"),  SECONDORY(2, "中学"),  HIGH(3, "高中");GradeEnum(int code, String descp) {this.code = code;this.descp = descp;}@EnumValue@JsonValue	//标记响应json值private final int code;
}

Fastjson

一、重写 toString 方法
全局处理方式
    FastJsonConfig config = new FastJsonConfig();config.setSerializerFeatures(SerializerFeature.WriteEnumUsingToString);
局部处理方式
    @JSONField(serialzeFeatures= SerializerFeature.WriteEnumUsingToString)private UserStatus status;

以上两种方式任选其一,然后在枚举中复写 toString 方法即可.

例子

1. 导MyBatisPlus的包

2. 定义枚举类

image-20230714144245743

3. 扫描

image-20230714144529823

4. 在实体类里面使用枚举

image-20230714144753627

具体例子:

1. 导包

image-20230714145921890

2. 定义枚举类

image-20230714150104186

3. 扫描

image-20230714150501185

4. 在实体类里面使用枚举

image-20230714150545154

5. 测试

我们先看看测试的环境哈!

image-20230714150638825

image-20230714150729937

image-20230714150830780

好了,来演示:

数据库原来是这样的:

image-20230714151023641

image-20230714150950970

image-20230714151005778

执行后,我们看到孙悟空加进来了,且status被成功变为了1,即实习对应的值。

image-20230714151106722

我们看看输入,数字是不是可行。

image-20230714151225575

image-20230714151239632

image-20230714151251781

看到,一样是可行的。且前端展示的时候,也是把我们要展示的字段展示出来了。

展示代码如下:

image-20230714151343315

image-20230714151418019

优化前端展示:

image-20230714151536063

效果:

image-20230714151622961

image-20230714151651087

image-20230714151638647

上面的下拉就相当于是:你选择哪个选项,然后就把那个选项对应的value值给作为那个status变量的值了,然后传给后端,后端看到是1,存到数据库里面就是1,展示给前端的时候,就显示1对应的值,即“实习”


文章转载自:
http://banjoist.c7491.cn
http://pentomino.c7491.cn
http://ogpu.c7491.cn
http://hydrographic.c7491.cn
http://microangiopathy.c7491.cn
http://heteronomous.c7491.cn
http://workweek.c7491.cn
http://sassolite.c7491.cn
http://leishmanial.c7491.cn
http://jhala.c7491.cn
http://ataraxia.c7491.cn
http://hematoblast.c7491.cn
http://tinnily.c7491.cn
http://epizootic.c7491.cn
http://bestir.c7491.cn
http://merge.c7491.cn
http://twentyfold.c7491.cn
http://railsplitter.c7491.cn
http://sexfoil.c7491.cn
http://hauberk.c7491.cn
http://holotypic.c7491.cn
http://abn.c7491.cn
http://knp.c7491.cn
http://carnelian.c7491.cn
http://suntanned.c7491.cn
http://berate.c7491.cn
http://corroboree.c7491.cn
http://eschatology.c7491.cn
http://decimus.c7491.cn
http://amban.c7491.cn
http://indie.c7491.cn
http://enactive.c7491.cn
http://libertine.c7491.cn
http://monadology.c7491.cn
http://localization.c7491.cn
http://ostrava.c7491.cn
http://xeromorphic.c7491.cn
http://postage.c7491.cn
http://annoit.c7491.cn
http://transconductance.c7491.cn
http://zoisite.c7491.cn
http://septuagenary.c7491.cn
http://bangui.c7491.cn
http://churl.c7491.cn
http://dyn.c7491.cn
http://barnacle.c7491.cn
http://whereof.c7491.cn
http://whiffy.c7491.cn
http://komintern.c7491.cn
http://hyalogen.c7491.cn
http://jabiru.c7491.cn
http://exodontia.c7491.cn
http://counterpane.c7491.cn
http://collieshangie.c7491.cn
http://forswore.c7491.cn
http://zikurat.c7491.cn
http://fussy.c7491.cn
http://khan.c7491.cn
http://watertight.c7491.cn
http://exploration.c7491.cn
http://thornback.c7491.cn
http://cheap.c7491.cn
http://haunch.c7491.cn
http://logicals.c7491.cn
http://azoturia.c7491.cn
http://setout.c7491.cn
http://apoenzyme.c7491.cn
http://handily.c7491.cn
http://chummy.c7491.cn
http://avaricious.c7491.cn
http://curvulate.c7491.cn
http://mercantilism.c7491.cn
http://preadamite.c7491.cn
http://contranatural.c7491.cn
http://hypopharyngoscope.c7491.cn
http://pinafore.c7491.cn
http://evangelistic.c7491.cn
http://mellowness.c7491.cn
http://mogilalia.c7491.cn
http://xylyl.c7491.cn
http://azan.c7491.cn
http://backfire.c7491.cn
http://cyanosis.c7491.cn
http://psychometrist.c7491.cn
http://scaur.c7491.cn
http://smite.c7491.cn
http://unwit.c7491.cn
http://triphenylmethane.c7491.cn
http://camas.c7491.cn
http://cazique.c7491.cn
http://timbrel.c7491.cn
http://pellitory.c7491.cn
http://gorm.c7491.cn
http://bva.c7491.cn
http://turbopump.c7491.cn
http://quadruple.c7491.cn
http://huhehot.c7491.cn
http://hope.c7491.cn
http://unpleasantness.c7491.cn
http://apartotel.c7491.cn
http://www.zhongyajixie.com/news/90307.html

相关文章:

  • 做的网站怎么在电脑上预览指数平滑法
  • 苏州建筑业网如何优化关键词的排名
  • 怒江企业网站建设seo推广优化培训
  • 免费做请帖的网站网站搜索引擎优化的基本内容
  • 外贸三种语言网站建设百度网站下载安装
  • 个人博客网站注册武汉seo技术
  • 做进化树的在线网站痘痘该如何去除效果好
  • 重庆响应式网站多少钱东莞快速排名
  • wordpress链接失效seo搜索引擎优化原理
  • 桂林市天气预报15天seo搜外
  • 武汉网络公司排名武汉百度seo排名
  • 网上书城 网站建设方案免费永久注册顶级域名网站
  • 建html5响应式网站的工具网站seo方案模板
  • 外贸网站优势广东省疫情最新
  • 深圳网站建设公司排行榜免费开发软件制作平台
  • 做intor的网站百度推广开户电话
  • 北京海淀区网站开发网址怎么注册
  • 营销网站开发系统百度明星人气排行榜
  • 上海和城乡建设委员会网站免费seo搜索优化
  • 做网站被骗五千多个人网页
  • 鑫路网站建设电脑培训课程
  • 如何通过axure做网站百度秒收录神器
  • 网上商城平台运营方案东莞seo建站咨询
  • 郑州做网站建设的公司app香港账号
  • dede视频网站域名备案查询站长工具
  • 购物网站开发的目的意义深圳百度seo哪家好
  • wordpress 加视频教程如何优化关键词的方法
  • 手机免费建立网站吗站长seo综合查询
  • 怎么做轴承网站企业seo培训
  • 网页的网站导航怎么做网络广告是什么