所有分类
  • 所有分类
  • 未分类

SpringBoot-在Entity(DAO)中使用枚举类型

简介

本文介绍SpringBoot如何在Entity(DAO)中使用枚举类型。(本文使用MyBatis-Plus)。

在实际开发中,经常需要表示类型或者状态,比如:有三种支付方式:微信、支付宝、银联。本文介绍如何这种场景的方案对比,并用实例来介绍如何优雅地使用枚举。

有人也许觉得:枚举?我会用呀,so easy。但是,大概率不是最优雅的,我认识的人有百分之95%都没有掌握本文中的优雅的、正确的用法。

方案对比

本处列举表示类型或状态的常用方法的对比。

法1:使用数字表示(不推荐)

//1:支付宝支付;2:微信支付;3:银行卡支付
private Integer payType;

这种方法的缺点:可读性极差,排查问题也麻烦。比如:前端页面上看到了2这个类型,还要看接口文档或者问后端这是什么意思,浪费时间!

法2:使用字符串表示(不推荐)

//ALIPAY:支付宝;WECHAT_PAY:微信;BANK_CARD_PAY:银行卡支付
private String payType;

这种方式比法1好一些了,提高了数据库的可读性和排查问题速度。

缺点:难以控制不允许数据库的pay_type为空字符串这种情况;支持的类型没有限制死,前端传个其他的字符串也能存入数据库。

法3:使用枚举表示(推荐)

枚举是这种场景最好的方案(枚举本身就是为了表示可穷举类型而发明出来的!)。

此内容仅限VIP查看,请先
1

评论2

请先

  1. 代码不全啊
    150003 2024-04-11 0
    • 这里没保留所有代码,文中的代码已经足够示意了。
      自学精灵 2024-04-11 0
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录