搜索
写经验 领红包
 > 生活

java中如何处理开关状态的属性字段(java中如何处理开关状态的属性字段数据)

导语:Java中如何处理开关状态的属性字段?

或许,大家在项目的开发中经常会遇到开关状态,例如0关闭,1开启,直接在数据库也是保存为int或tinyint,这样前端后端数据库都统一了一个值,后端使用Integer去接数据库和前端,看着没有什么大毛病,但是仔细想想会有以下的弊端:

一、内存占用过大

Integer为4个字节共32个比特位,造成了内存资源的严重浪费。

二、违背代码整洁之道

逻辑判断冗余不美观,例如:

if(.equals(obj.getIsOn)){//业务代码}

显然这对于一个有代码洁癖的人来说是无法忍受的,那么应该怎么解决这个问题呢?

三、解决方案

在实体类中将开关属性定义为Boolean类型,数据库字段设定为bit(1),即一个比特位。这里mybatis或者JPA会自动为我们映射Java bean中的Boolean和数据库中的bit,映射关系是0为false,非0为true,前后端直接传true or false,这样即解决了内存浪费的问题,又使代码更加优雅简洁。

if(obj.getIsOn){//业务代码}

当然这样极易出现NPE,也不是没有解决办法,通过在业务上设置必填项或者默认值即可解决。

感觉对自己有帮助的朋友不妨点个赞关注转发一波,小僧将不胜感激哦

本文内容由快快网络小梓创作整理编辑!