[[toc]]

第三节 QBC查询

1、概念

QBC:Query By Criteria
03.QBC查询 - 图1

QBC查询最大的特点就是将SQL语句中的WHERE子句进行了组件化的封装,让我们可以通过调用Criteria对象的方法自由的拼装查询条件。

2、例子

  1. // 1.创建EmployeeExample对象<br /> EmployeeExample example = new EmployeeExample();
  2. // 2.通过example对象创建Criteria对象<br /> EmployeeExample.Criteria criteria01 = example.createCriteria();<br /> EmployeeExample.Criteria criteria02 = example.or();
  3. // 3.在Criteria对象中封装查询条件<br /> criteria01<br /> .andEmpAgeBetween(9, 99)<br /> .andEmpNameLike("%o%")<br /> .andEmpGenderEqualTo("male")<br /> .andEmpSalaryGreaterThan(500.55);
  4. criteria02<br /> .andEmpAgeBetween(9, 99)<br /> .andEmpNameLike("%o%")<br /> .andEmpGenderEqualTo("male")<br /> .andEmpSalaryGreaterThan(500.55);
  5. SqlSession session = factory.openSession();
  6. EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
  7. // 4.基于Criteria对象进行查询<br /> List<Employee> employeeList = mapper.selectByExample(example);
  8. for (Employee employee : employeeList) {<br /> System.out.println("employee = " + employee);<br /> }
  9. session.close();
  10. // 最终SQL的效果:<br /> // WHERE ( emp_age between ? and ? and emp_name like ? and emp_gender = ? and emp_salary > ? ) or( emp_age between ? and ? and emp_name like ? and emp_gender = ? and emp_salary > ? )

上一节 回目录