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小时内删除。
发表评论