mybatis Example的Criteria用法:or与isNull详解

mybatis Example的Criteria用法or与isNull

1.or

BaUserExample baUserExample = new BaUserExample();
Criteria criteria1 = baUserExample.createCriteria();
criteria1.andOrgIdEqualTo(“1”);
criteria1.andDeptIdEqualTo(“1”);
Criteria criteria2 = baUserExample.createCriteria();
criteria2.andUserNameEqualTo(“name”);
criteria2.andEmailLike("%test@%");
baUserExample.or(criteria2);
userMapper.countByExample(baUserExample);

2.isNull

为空要用isNull() 不要用equalTo(null) ,否则会报错。

mybatis Criteria的使用

查询名字中带有字母 r ,性别为男性(1)或者email中带有数字1的人员信息

@Test
 public void test1() throws IOException {
  SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
  SqlSession openSession = sqlSessionFactory.openSession(true);
  try {
   EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
//   List selectAll = mapper.selectByExample(null);
   EmployeeExample example = new  EmployeeExample();
   Criteria criteria = example.createCriteria();
   criteria.andNameLike("%r%");
   criteria.andGenderEqualTo("1");
   Criteria criteria2 = example.createCriteria();
   criteria2.andEmailLike("%1%");
   example.or(criteria2);
   List select = mapper.selectByExample(example);
   for(Employee employee :select) {
   System.out.println(employee.getName()+employee.getEmail());
   }
  }finally {
   openSession.close();
  }
 }

1.先实例化一个EmployeeExample对象

2.调用createCriteria()方法

3.查询名字中带有字母 r ,性别为男性(1)之间是and关系

criteria.andNameLike("%r%");   
criteria.andGenderEqualTo("1");

4.查询email中带有数字1,并且已第一个criteria为基准与其进行or运算

Criteria criteria2 = example.createCriteria();   
criteria2.andEmailLike("%1%"); 
example.or(criteria2);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(mybatis Example的Criteria用法:or与isNull详解)