zoukankan      html  css  js  c++  java
  • 关于Mybatis的Example(and ,or )应用

    近期的一个项目中遇到Mybatis的Example的and or 的应用,感觉有必要记录一下(个人见解,有问题请指出。谢谢)

    1.在Example中的每一个Criteria相当于一个括号,把里面的内容当成一个整体

    where  (Userid = "11" and pointname = "22")

    BasePointsExample.Criteria criteria1 = example.createCriteria();
    criteria1.andUseridEqualTo("11");
    criteria1.andPointnameLike("22");

    2.在Criteria中没有直接的or的构造方法(至少我不知道)所以碰到一下where  后  and or的连用的话会有点麻烦

           2.1     where (条件1 and 条件2) or ( 条件3 and  条件4)

     BasePointsExample.Criteria criteria1 = example.createCriteria();
                criteria1.andUseridEqualTo('11');
                criteria1.andPointnameLike(StringUtil.concatlike('22'));
    
      BasePointsExample.Criteria criteria2 = example.createCriteria();
                criteria2.andUsernameEqualTo('33');
                criteria2.andPointcontentLike(StringUtil.concatlike('44'));
      example.or(criteria2);
    

      2.2   where 条件1 and (条件2   or   条件3)   这是我碰到的问题,在网上看到一种拆分的方法感觉很好

                   A    and  ( B  or   C  )   ==>  ( A  and  B )  or  ( A  and C )

       

     BasePointsExample.Criteria criteria1 = example.createCriteria();
                criteria1.andUseridEqualTo('11');
                criteria1.andPointnameLike(StringUtil.concatlike('22'));
    
                BasePointsExample.Criteria criteria2 = example.createCriteria();
                criteria2.andUseridEqualTo('11');
                criteria2.andPointcontentLike(StringUtil.concatlike('33'));
                example.or(criteria2);
    

      

    这是我在项目中遇到的,正好能解决我的问题。感觉还有更好的方法,正在查找尝试,这种方法简单的还可以,复杂的就吃力了。

  • 相关阅读:
    《C Primer Plus(第6版)中文版》一1.12 复习题
    《C Primer Plus(第6版)中文版》一1.12 复习题
    线程池多线程视频转码(完整版)
    mencoder的x264encopts选项参数略解
    ffmpeg多线程转码
    案例分析:程序媛记一次特殊的“故障”处理
    WINDOWS下CMake+MinGW64搭建C/C++编译环境
    lvs keepalived nginx-rtmp 视频流服务负载均衡系统搭建
    python 利用字典统计次数
    python 16进制 gbk转中文
  • 原文地址:https://www.cnblogs.com/FengLog/p/8464411.html
Copyright © 2011-2022 走看看