Mybatis中Example的⽤法
  Example简单介绍
  1.example是Mybatis数据层框架中的⼀个⼯具,可以帮我们完成sql语句中where条件句的书写,相当于where后⾯的部分,我们可以根据不同的条件来查询和操作数据库,简化书写sql的过程。
  2.⽤MyBatis的逆向⼯程可以⾃动⽣成Example类。
  Example具体⽤法
  1.Example类的⽣成
  只要在l ⽂件中⽤表名⽣成对应的实体类时将⽣成Example的信息都变为true即可。
  如:
  enableCountByExample="true"
  enableUpdateByExample="true"
  enableDeleteByExample="true"
  enableSelectByExample="true"
  selectByExampleQueryId="false"
  2.Example类的具体⽤法
  1.每个实体类都对应⼀个xxxExample.java类,这个类可以⽤来⾃定义sql,⽤Mybait⾃动⽣成⼯具⽣成了这个类后,可以看到类⾥⾯⼀般有这些参数:
  orderByClause:⽤于指定ORDER BY条件,这个条件没有构造⽅法,直接通过传递字符串值指定。
  distinct: 是⽤来指定是否要去重查询的,true为去重,false不去重。
  oredCriteriia:是⽤来指定查询条件的。
  2.Example.java中包含⼀个static 的内部类 Criteria ,在Criteria中有很多⽅法,主要是定义SQL 语句where后的查询条件,Criterion是最基本的Where条件,针对字段进⾏筛选。
  3.Example类中的⼀些⽅法说明:
  example.setOrderByClause(“字段名 ASC”); 添加升序排列条件,DESC为降序
  example.setDistinct(false) 去除重复,boolean型,true为选择不重复的记录。
  criteria.andXxxIsNull 添加字段xxx为null的条件
  criteria.andXxxIsNotNull 添加字段xxx不为null的条件
  criteria.andXxxEqualTo(value) 添加xxx字段等于value条件
  criteria.andXxxNotEqualTo(value) 添加xxx字段不等于value条件
  criteria.andXxxGreaterThan(value) 添加xxx字段⼤于value条件
  criteria.andXxxGreaterThanOrEqualTo(value) 添加xxx字段⼤于等于value条件
  criteria.andXxxLessThan(value) 添加xxx字段⼩于value条件
  criteria.andXxxLessThanOrEqualTo(value) 添加xxx字段⼩于等于value条件
  criteria.andXxxIn(List) 添加xxx字段值在List条件
  criteria.andXxxNotIn(List) 添加xxx字段值不在List条件
  criteria.andXxxLike(“%”+value+”%”) 添加xxx字段值为value的模糊查询条件
  criteria.andXxxNotLike(“%”+value+”%”) 添加xxx字段值不为value的模糊查询条件
  criteria.andXxxBetween(value1,value2) 添加xxx字段值在value1和value2之间条件
isnull的用法
  criteria.andXxxNotBetween(value1,value2) 添加xxx字段值不在value1和value2之间条件
  Examle在基础中⼼的应⽤实例
  以查询系统⽤户详情接⼝qrySystemUserDetail为例:
  Long sysUserIdRec = SysUserId();
  String sysUserCode = SysUserCode();
  SystemUserExample systemUserExample = new SystemUserExample();
  SystemUserExample.Criteria criteria = ateCriteria();
  if (sysUserIdRec != null)
  criteria.andSysUserIdEqualTo(sysUserIdRec);
  if (sysUserCode != null)
  criteria.andSysUserCodeEqualTo(sysUserCode);
  List systemUserList = systemUserMapper.selectByExample(systemUserExample);
  这是⽤where语句处理and查询条件的情况,
  相当于:select * from system_user where sys_user_id={#sysUserId} and sys_user_code={#sysUserCode}  1.⽤Example的⽅法给查询结果⼀些限制,如:
  //指定要进⾏去重查询
  systemUserExample.setDistinct(true);//去重
  //指定ORDER BY条件
  systemUserExample.setOrderByClause(“字段名 ASC”);//升序
  2.⽤where语句处理or查询条件的情况,如:
  UserExample.Criteria criteria1 = ateCriteria();
  UserExample.Criteria criteria2 = ateCriteria();
  if(!StringUtils.Name())){
  Criteria1.Name());
  }
  if(!StringUtils.Sex())){
  Criteria2.Sex());
  }
  (criteria2);
  List userList=userMapper.selectByExample(example);
  相当于:select * from user where name={#user.name} or sex={#user.sex}
  3.模糊查询,如:
  if(!StringUtils.Name())){
  criteria.andNameLIke(‘%’+Name()+’%’);
  }
  List userList=userMapper.selectByExample(example);
  相当于:select * from user where name like %{#user.name}%

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。