sql,mybatis中Boolean类型 False无效问题


mybatis中当查询条件有Boolean类型的时候,为false时查询无效

 

eg:
<if test="isOk != null and isOk !=''">
and is_ok = #{isOk}
</if>

此时当isOk为false时,并未查询出is_ok对应的结果来

找原因:
  直接到数据库使用脚本查询

 select * from table where is_ok = false

  此时能查出is_ok为0的数据

select * from table where is_ok = true

 

  此时能查出is_ok为1的数据
  此时定位问题是否在

此时能查出is_ok为0的数据

<if test="isOk != null and isOk !=''">


  通过排查去掉and isOk!=’’,可以正确的查出

  所以正确的查询结构是:

<if test="isOk != null">
    and is_ok = #{isOk}
  </if>

经研究:
mybatis的if判断里面最好不要使用boolean值:
mybatis会默认把空值转为false。所以如果遇见前面传空值,这个字段在mybatis里面永远就是false了,可以使用数字类型代替,但是不要使用0作为参数。



druid数据库解密加密

import com.alibaba.druid.filter.config.ConfigTools;

语句:

@Test
public void test2() throws Exception{
  //解密
  String word="NaSb06jVxVBGcmMeuv3wiRH6oiMLFVA0bRs6stSSz2m52pLJLne2uYQNZgIHJHfKn+TaPPw/lqVCpv2ylCaE9w==";
  String decryptword = ConfigTools.decrypt(word);
  System.out.println("++++++");
  System.out.println(decryptword);
}
@Test
public void testEncrypt() throws Exception
{
  //加密
  String password ="xxxxxxx";
  String encryptword = ConfigTools.encrypt(password);
  System.out.println(encryptword);
}

 

 

点点滴滴积累!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM