Java中mybatis关于Example类的使用详解
Mybatis的Example类是一个用于构建查询条件的实用工具。它可以帮助我们快速地生成复杂的查询语句,避免了手写SQL的繁琐,提高了开发效率。
常用方法
清空查询条件 clear()
在使用Example构造查询条件的时候,我们常会需要重用这个对象,这时候就需要清空之前的查询条件。可以通过调用Example类中的clear()方法来清空查询条件。
Example example = new Example(User.class);
example.createCriteria().andGreaterThan("age", 18);
List<User> userList = userMapper.selectByExample(example);
example.clear(); // 清空查询条件
example.createCriteria().andEqualTo("name", "Tom");
List<User> userList2 = userMapper.selectByExample(example);
以上代码构造了两个查询,并且通过调用clear()方法清空了第一个查询中的查询条件。
添加查询条件 createCriteria()
createCriteria()方法用来创建查询条件。它返回一个Criteria对象,其作用是构造查询条件的一部分。多个Criteria对象可以组合成复杂的查询条件。
Example example = new Example(User.class);
Criteria criteria1 = example.createCriteria();
criteria1.andGreaterThan("age", 18);
Criteria criteria2 = example.createCriteria();
criteria2.andEqualTo("name", "Tom");
example.or(criteria2);
List<User> userList = userMapper.selectByExample(example);
以上代码构造了一个根据年龄大于18或者名字为Tom的查询条件。
添加排序条件 orderBy()
orderBy()方法用于指定查询结果的排序方式。可以按照单个属性或者多个属性进行排序。
Example example = new Example(User.class);
example.orderBy("age").desc().orderBy("name").asc();
List<User> userList = userMapper.selectByExample(example);
以上代码表示按照年龄降序排列,然后按照名字升序排列。
示例
示例1
假设我们有一个用户表(user),我们希望查询所有年龄大于18岁的用户,并按照年龄升序排列。
Example example = new Example(User.class);
Criteria criteria = example.createCriteria();
criteria.andGreaterThan("age", 18);
example.orderBy("age").asc();
List<User> userList = userMapper.selectByExample(example);
以上代码构造了一个根据年龄大于18的查询条件,并按照年龄升序排列。
示例2
假设我们有一个学生表(student),我们希望查询所有名字为Tom并且年龄大于18岁的学生,并按照年龄降序排列。
Example example = new Example(Student.class);
Criteria criteria = example.createCriteria();
criteria.andEqualTo("name", "Tom");
criteria.andGreaterThan("age", 18);
example.orderBy("age").desc();
List<Student> studentList = studentMapper.selectByExample(example);
以上代码构造了一个根据名字和年龄的查询条件,并按照年龄降序排列。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中mybatis关于example类的使用详解 - Python技术站