Example簡單介紹
1.example是Mybatis數據層框架中的一個工具,可以幫我們完成sql語句中where條件句的書寫,相當於where后面的部分,我們可以根據不同的條件來查詢和操作數據庫,簡化書寫sql的過程。
2.用MyBatis的逆向工程可以自動生成Example類。
Example具體用法
1.Example類的生成
只要在generatorConfig.xml 文件中用表名生成對應的實體類時將生成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之間條件
criteria.andXxxNotBetween(value1,value2) 添加xxx字段值不在value1和value2之間條件
Examle在基礎中心的應用實例
以查詢系統用戶詳情接口qrySystemUserDetail為例:
Long sysUserIdRec = qrySystemUserDetailReq.getSysUserId();
String sysUserCode = qrySystemUserDetailReq.getSysUserCode();
SystemUserExample systemUserExample = new SystemUserExample();
SystemUserExample.Criteria criteria = systemUserExample.createCriteria();
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}
Examle其他用法補充無錫男科醫院哪家好 http://www.zzch120.com/
1.用Example的方法給查詢結果一些限制,如:
//指定要進行去重查詢
systemUserExample.setDistinct(true);//去重
//指定ORDER BY條件
systemUserExample.setOrderByClause(“字段名 ASC”);//升序
2.用where語句處理or查詢條件的情況,如:
UserExample.Criteria criteria1 = example.createCriteria();
UserExample.Criteria criteria2 = example.createCriteria();
if(!StringUtils.isNotBlank(user.getName())){
Criteria1.andNameEqualTo(user.getName());
}
if(!StringUtils.isNotBlank(user.getSex())){
Criteria2.andSexEqualTo(user.getSex());
}
Example.or(criteria2);
List userList=userMapper.selectByExample(example);
相當於:select * from user where name={#user.name} or sex={#user.sex}
3.模糊查詢,如:
if(!StringUtils.isNotBlank(user.getName())){
criteria.andNameLIke(‘%’+user.getName()+’%’);
}
List userList=userMapper.selectByExample(example);
相當於:select * from user where name like %{#user.name}%
