当前位置: 代码迷 >> 综合 >> mybatis对布尔类型的处理
  详细解决方案

mybatis对布尔类型的处理

热度:58   发布时间:2024-03-08 12:37:54.0

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!

  前几篇记录完了对枚举类的处理,顺便简单记录一下对布尔值的处理,因为遇到了一个小坑。

新增属性:

先看下保存相关代码:

    // 实体属性private Boolean localFlag;    // xml中<insert id="savePerson" parameterType="com.example.springbootmybatis.bean.Person">insert into t_person<trim prefix="(" suffix=")" suffixOverrides=","><if test="pname != null and pname != ''">pname,</if><if test="ptype != null">ptype,</if><if test="sex != null">sex,</if><if test="localFlag != null">local_flag,</if></trim><trim prefix="values(" suffix=")" suffixOverrides=","><if test="pname != null and pname != ''">#{pname},</if><if test="ptype != null">#{ptype},</if><if test="sex != null">#{sex},</if><if test="localFlag != null">#{localFlag},</if></trim></insert>

我遇到的小坑是:

  1. 多判了!='':<if test="localFlag != null and localFlag  != '' ">  这样的后果是可以正常保存true数据库中为1,但是保存false的时候数据库为空不为0
  2. 属性使用boolean:应该使用包装类Boolean,使用boolean的时候@Data注解生成的是is**方法,而不是get**方法,导致取值有问题。
  3. 另外注意一下在判断日期类型和枚举类型的时候也不要判 !='',只判null即可,否则会报错

 

  相关解决方案