通用mapper 的查询总结
1.如果是等值查询
根据其主键查询,则可以用selectByPrimaryKey()
如果不是主键,而是根据其他值查询,那么用select(T t)
T为通用mapper对应的类类型,这里传入一个该类的实例,根据改实例去匹配对应字段相同的返回。
eg:
User user=new User();
user.setName("name1");
user.setAge(12);
List<User> users= this.userMapper.select(user);
userMapper.select(user);//查找name姓名为name1,年龄为12 的user
2.如果是模糊查询,则用select(Example),eg:
// 初始化example对象
Example example = new Example(User.class);
Example.Criteria criteria = example.createCriteria();
//设置筛选条件
criteria.andLike("name", "%" + key + "%").orEqualTo("firstChar", key);
//设置排序
example.setOrderByClause(sortBy + " " + (desc ? "desc" : "asc"));
//开始查询
List<User> users = this.userMapper.selectByExample(example);
3.特殊的,一次根据多个主键id查询多个对象,SelectByIdListMapper
首先要在mapper接口出增加SelectByIdListMapper<Category,Long>:
public interface CategoryMapper extends Mapper<Category> ,SelectByIdListMapper<Category,Long>{
然后,在具体使用的service中,通过selectByIdList(ids)就可以查询得到数据了.
List<User> users = this.userMapper.selectByIdList(ids);