前言
在一般的项目中,经常会有各种状态的要求的场景。比如一个论坛,用户账户会有激活、删除、冻结、手机绑定、邮箱绑定等多种状态,如果没个状态都在数据库中作一个字段,那么会很繁琐。而且代码实现也会很麻烦。因此,本文就会引导大家使用二进制来表示及控制多状态。
正文
二进制表示多状态的原理就是每个bit位对应一个状态,0和1来表示该状态的false和true。Java中,int型变量是32位,及最多可以表示32中状态。然而,我们一般并不需要过多状态。
例:MySQL字段’ACCOUNT_STATUS’,对应DO类中的属性’accountStatus’
状态定义
1 | bit0:激活状态,0-未激活,1-已激活; |
状态值示例
状态int值 | 二进制 | 说明 |
---|---|---|
1 | 0000 0001 | 已激活; |
5 | 0000 0101 | 已激活;已删除; |
97 | 1100 0001 | 已激活;邮箱已验证;谷歌已验证; |
Java定义示例
实现一个账户状态java类,及一个内部账户状态枚举
1 | /** |
Java使用示例
查
1 | // 获取该账户对象 |
改:直接修改状态字段int值
1 | // 激活该账户 |
改:修改某个状态
1 | // 改为激活状态 |
1 | <!-- sql语句中的set语句 --> |
MySQL语句示例
查:查询某状态下的数据
1 | #已激活 |
改:修改单独的某个状态
1 | #激活 |
结尾
第一次写博客,个人感觉这个知识还是挺有用的、挺好玩的。写的不好,还请谅解。
有趣的灵魂终会相聚;
有梦想的人就不会死;
共勉;