mybatis——逆向工程中 where (条件1)and (条件2 or 条件3 or 条件4)

Posted ixfcao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis——逆向工程中 where (条件1)and (条件2 or 条件3 or 条件4)相关的知识,希望对你有一定的参考价值。

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

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

 

 

 结果 是这样的 

WHERE ( birthdate between ? and ? and username like ? ) or( birthdate between ? and ? and email like ? ) or( birthdate between ? and ? and phone like ? ) 

 

 

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

Where(userid=’1’ and name=’2’)


1
2
3
4
UserExample example = new UserExample();
UserExample.Criteria c1 = example.createCriteria();
C1.andUseridEqualTo(“1”);
C2.andNameEqualTo(“2”);

C1.andUseridEqualTo(“1”).andNameEqualTo(“2”);也可

 

2. 在criteria中没有直接的or。

(1) where(A and B) or (C and D)

1
2
3
4
5
6
7
8
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)where A and (B or C)

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

1
2
3
4
5
6
7
8
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);

 

以上是关于mybatis——逆向工程中 where (条件1)and (条件2 or 条件3 or 条件4)的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis的Example常用函数和Mapper常用接口

MyBatis空where拦截器

java代码中组装where条件然后拼接到mybatis xml中的sql后面

MyBatis 动态sql详解

mybatis plus XML文件如何使用多个where条件

mybatis的xml带where固定条件查询