> 生活
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,也不是没有解决办法,通过在业务上设置必填项或者默认值即可解决。
感觉对自己有帮助的朋友不妨点个赞关注转发一波,小僧将不胜感激哦
本文内容由快快网络小梓创作整理编辑!