您的位置:首页 > 移动开发

通用mapper 根据条件修改、查询 Example的实例函数及例子

2017-12-15 15:53 1006 查看
**

通用mapper 根据条件修改、查询 Example的实例函数及例子

**

条件:

Example example = new Example(User.class);

Criteria criteria = example.createCriteria();

注意:

criteria.andEqualTo(property, value);

property 对应的是实体类中的属性字段

1、根据条件查询

/**
* 根据名称,id,ntype等获取其对应节点总数
* 用于判断名称是否重复
*/
public int getCountByNameAndUId(String name, Long id, Long userId) {

Example example = new Example(User.class);
Criteria criteria = example.createCriteria();

criteria.andEqualTo("name", name);
criteria.andNotEqualTo("id", id);
criteria.andEqualTo("userId", uid);

int count = categoryMapper.selectCountByExample(example);

return count;
}

等效于:
Select count(0) from user where name = #{name} and id != #{id} and uid != #{uid}


2、and or 查询

public Example test(List<Long> ids, String name, String des) {
Example example = new Example(User.getClass());
// where 条件
Criteria criteria = example.createCriteria();
Criteria criteria1 = example.createCriteria();

criteria.andIn("id", ids);
criteria1.orLike("des", "%" + des + "%");
criteria1.orLike("name", "%" + name + "%");
example.and(criteria1);

return example;
}

等效于:
where id in ( #{ids} ) and ( name like concat(‘%’, #{name} ,’%’) or des like concat(‘%’, #{des} ,’%’) )


3、根据条件修改

Example example = new Example(User.getClass());
// where 条件
Criteria criteria = example.createCriteria();
criteria.andEqualTo("name", name);
userMapper.updateByExampleSelective(user, example);
等效于:
Update user set ... where name = #{name}


参照:

MyBatis的Mapper接口以及Example的实例函数及详解(http://blog.csdn.net/biandous/article/details/65630783)

通用mapper
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息