简介
本文介绍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查看,请先登录
请先
!