Example.or() example.and Criteria

15 阅读1分钟

逆向工程实现 where(条件1 and 条件2)or (条件3and条件4)

Example.or() example.and 可实现: where(条件1 and 条件2)or (条件3and条件4)

或:where条件1 and(条件2or条件3)

  Example example = new Example(Std.class);
  Criteria criteria1 = example.createCriteria();
  Criteria criteria2 = example.createCriteria();
  if(!StringUtils.isEmpty(std.getA100())){
    criteria1.andLike("a100", "%"+std.getA100()+"%");
  }
  if(!StringUtils.isEmpty(std.getA200())){
     criteria1.andEqualTo("a200", std.getA200());
  }

  if(!StringUtils.isEmpty(std.getA298())){
     criteria2.andLike("a298", "%"+std.getA298()+"%");
     criteria2.orLike("a302", "%"+std.getA298()+"%");
  }
  example.and(criteria2);   //需要and或者or连接一下,具体看需要使用
  List<Std> list = stdMapper.selectByExample(example);

实现如下sql

SELECT * FROM std WHERE (a100 LIKE ?) AND (a298 LIKE ? OR a302 LIKE ?)